This step will create entries in the combo box and set one search field as visible. The combo box ItemGotSelection event will show and hide the search fields.

1.  Create a subroutine with name InitForm

2.  Add code to set values for STD_DESCS and STD_CODEL and add three entries to the combo box. Position the combo box to the entry for By Name initially:

     Subroutine Name(InitForm)
     Clr_List Named(#ComboBox1)
     #STD_CODEL := NAME
     #std_descs := 'By Name'
     Add_Entry To_List(#ComboBox1)
     #STD_CODEL := DATE
     #std_descs := 'Start Date'
     Add_Entry To_List(#ComboBox1)
     #STD_CODEL := DEPT
     #std_descs := 'By Department'
     Add_Entry To_List(#ComboBox1)
     Get_Entry Number(1) From_List(#ComboBox1)
     #ComboBox1.CurrentItem.Focus := true
     Endroutine 

Note: The commands to Get_Entry and Set focus position of the combo box to the first entry added, (NAME).

3.  Extend the InitForm subroutine to show iiiSearchName and hide SearchDate and SearchDepartment.

     #iiiSearchName. Visible := True
     #SearchDepartment.visible #SearchDate.visible := false

4.  Add code to execute the subroutine InitForm from the form's CreateInstance event.

     Evtroutine Handling(#com_owner.CreateInstance)
     Set Com(#com_owner) Caption(*component_desc)
     Execute Subroutine(InitForm)
     Endroutine

5.  Using a CASE/ENDCASE loop for field STD_CODEL, add code to the combo box ItemGotSelection event to show and hide the search fields depending on the value selected.

     Evtroutine Handling(#ComboBox1.ItemGotSelection) Options(*NOCLEARMESSAGES *NOCLEARERRORS)
     Case Of_Field(#std_codel)
     When (= NAME)
     #iiiSearchName.Visible := true
     #SearchDate.Visible #SearchDepartment.Visible := false
     When (= DATE)
     #SearchDate.Visible := true
     #SearchDepartment.Visible #iiiSearchName.Visible := false
     When (= DEPT)
     #SearchDepartment.visible := true
     #iiiSearchName.Visible #SearchDate.Visible := false
     Endcase
     Endroutine

6.  Compile and test the form. Your form should look like the following:


 

    Changing the Search by dropdown should display the correct search field.


  • No labels