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
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.
