In this step, you will add a Save button for employee details and create an UpdateEmployee method routine. At this stage, employee notes will not be updated.
1. Add a push button to the top of row 4, column 1.
2. Change the button's Alignment to Top Right.
a. Give it a margin Right of 20 and a margin Top of 10.
b. Change its Caption to Save.
c. Change its Name to Save_Employee.
d. Give it an Image of xImageSave16.
e. Create a Click event for the Save button.
3. Create a SaveEmployee method routine, based on the following:
Map for input of class xEmployeeIdentification, Name EmployeeID
Define a component iiixEmployeeDataServer / Save srvroutine, with name UpdateEmployee.
Assign xEmployeeIdentification to value EmployeeID
Execute UpdateEmployee asynchronously, exchanging Group_By xEmployee and field IO$STS.
Within a Completed event routine for UpdateEmployee:
If IO$STS is equal OK
Assign fields in Group_By xEmployee the value null
Set Label_Details.Caption to blank.
End Routine
Your code should look like the following:
Mthroutine Name(SaveEmployee)
Define_Map For(*INPUT) Class(#xEmployeeIdentification) Name(#EmployeeID)
Define_Com Class(#iiixEmployeeDataServer.save) Name(#UpdateEmployee)
#xEmployeeIdentification := #EmployeeID
#UpdateEmployee.ExecuteAsync( #xEmployee #io$sts )
Evtroutine Handling(#UpdateEmployee.Completed)
If (#io$sts = OK)
#xEmployee := *null
#Label_Details.Caption := ""
Clr_List Named(#NotesList)
Endif
Endroutine
Endroutine
4. Complete the Save_Employee button Click event by adding code to invoke the SaveEmployee method passing xEmployeeIndentification.
Your code should look like the following:
Evtroutine Handling(#Save_Employee.Click)
#COM_SELF.SaveEmployee( #xEmployeeIdentification )
Endroutine
5. Compile and test the web page.
Note: This application is a simple training exercise. Logic to update the employee entry in the EmployeeList dropdown hasn't been added, such as when Given Name or Surname is changed. This could easily be achieved.