Step 8. Update Employee Details

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( 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)




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 )



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.