Step 2. Add Selection Logic to the Web Page

In this step, you will populate the Employees list when the web page initializes and add logic to the list's ItemGotSelection and ItemLostSelection event routines to calculate total salary.

1.  Copy and paste the working list xEmployeeList and Group_By xEmployee definitions from the Server Module iiixEmployeeDataServer into your web page.

2.  Create a method routine, named LoadEmployees to perform the following:

Define a component for iiixEmployeeDataServer / FindAll srvroutine, with name GetEmployees

Assign Employee ID value null

Execute GetEmployees asynchronously, exchanging list xEmployeeList.

Within an event routine for GetEmployees.Completed

  Clear the list EmployeesList

  Select all entries in the list xEmployeeList

    Add each entry to the list ListEmployees

  End Select

End routine

Your code should look like the following:

Mthroutine Name(LoadEmployees)

Define_Com Class(#iiixEmployeeDataServer.findall) Name(#GetEmployees)

#xEmployeeIdentification := *NULL

#GetEmployees.ExecuteAsync( #xEmployeeList )

Evtroutine Handling(#GetEmployees.Completed)

Clr_List Named(#ListEmployees)

Selectlist Named(#xEmployeeList)

Add_Entry To_List(#ListEmployees)

Endselect

Endroutine

Endroutine 

3.  Create a CreateInstance event routine for the web page. Add code to invoke the method LoadEmployees.

Evtroutine Handling(#Com_owner.CreateInstance)

#com_self.LoadEmployees

Endroutine

 

     Note: The web page CreateInstance event is processed before the web page is displayed, so the initial data is loaded and the page is then displayed.

4.  Complete the ListEmployees.ItemGotSelection event by adding code to calculate TotalSalary for each selected employee. Your code should look like the following.

Evtroutine Handling(#ListEmployees.ItemGotSelection)

#TotalSalary += #xEmployeeSalary

Endroutine

 

5.  Similarly, complete the ItemLostSelection event for the ListEmployees list, to subtract Salary from TotalSalary as each employee loses selection. Your code should look like the following:

Evtroutine Handling(#ListEmployees.ItemLostSelection)

#TotalSalary -= #xEmployeeSalary

Endroutine

 

6.  Compile and test your web page. When the web page loads, the list should display all employees (the shipped Employee table contains approximately 100 employees).

     When you select a number of employees using either the Shift key or Control key with the Left mouse button, Total Salary should reflect the salaries for the selected employees.