maintenance: title: FORM_G_CODE_CHARGES;; mlmname: FORM_G_CODE_CHARGES;; arden: version 2.5;; version: 5.50;; institution: St Clair Charger MLM;; author: Juliet Johns, Allscripts, Inc;; specialist: Maria Pest, Allscripts, Inc;; date: 2013-04-05;; validation: testing;; library: purpose: This MLM requires checkboxes selected. ;; explanation: This MLM will enforces one and only one checkbox selected. ;; keywords: Called MLMs, Form fields, G Code, Charges Change History 2013.04.05 JML Original Code Creation ;; knowledge: type: data-driven;; data: // This MLM is passed three arguments, of types // communication_type, form_type and client info object respectively. (this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) := argument; // RS ADD Message box standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to true if a decision.log is needed.*/ log_execution_info := FALSE; /***************************************************************************************/ // Initialize error message error_message:=""; // Assigns fields passed in the Form object to the Field object field_list:= this_form.fields; CallingField :=this_communication.CallingFieldName; CallingEvent := this_communication.CallingEvent; FormType := this_communication.FormType; Percentage_List := ("CH", "CI", "CJ", "CK", "CL", "CM", "CN"); if (CallingEvent = "FieldChange") then fldCount := 0; for i in 1 seqto (count Percentage_List) do Percent_fld_name := "CHG_GMOD(" || Percentage_List[i] || ")"; Percent_fld := first of (field_list WHERE field_list.DataItemName = Percent_fld_name); if (Percent_fld.Value = true AND fldCount = 0) then fldCount := fldCount + 1; elseif (Percent_fld.Value = true AND fldCount = 1) then Percent_fld.Value := false; endif; enddo; elseif (CallingEvent = "FormClose") then fldCount := 0; for i in 1 seqto (count Percentage_List) do Percent_fld_name := "CHG_GMOD(" || Percentage_List[i] || ")"; Percent_fld := first of (field_list WHERE field_list.DataItemName = Percent_fld_name); if (Percent_fld.Value = true AND fldCount = 0) then fldCount := fldCount + 1; endif; enddo; if (fldCount = 0) then this_communication.DisplayForm := "Yes"; this_communication.Message := "You must select at least one percentage checkbox."; this_communication.MessageType := "Error"; endif; endif; ;; evoke: // No evoke statement ;; logic: conclude true; ;; action: // This MLM returns two parameters, of types communication_type and form_type respectively. return this_communication, this_form; ;; end: