WAM105. Appendix A

Use the following RDMLX source code to create iiiEmpMaint_TB in Step 5 of this exercise.

 

DEF_LIST NAME(#emps) FIELDS(#empno (#givename *out) (#surname *out) (#deptment *out) (#section *out) (#salary *out)) COUNTER(#listcount) TYPE(*Working) ENTRYS(99)
DEFINE FIELD(#hidesave) TYPE(*char) LENGTH(1)
DEFINE FIELD(#hidedel) TYPE(*char) LENGTH(1)
DEFINE FIELD(#hidenew) TYPE(*char) LENGTH(1)
DEFINE FIELD(#hidesrch) TYPE(*char) LENGTH(1)
DEFINE FIELD(#empnow) REFFLD(#empno)
Define Field(#wrname) Type(*char) Length(50)
GROUP_BY NAME(#empmnt) FIELDS(#SURNAME #GIVENAME #ADDRESS1 #ADDRESS2 #ADDRESS3 #POSTCODE #PHONEHME #PHONEBUS)
GROUP_BY NAME(#empadd) FIELDS(#EMPNO #SURNAME #GIVENAME #ADDRESS1 #ADDRESS2 #ADDRESS3 #POSTCODE #PHONEHME #PHONEBUS #DEPTMENT #SECTION #SALARY #STARTDTE)
WEB_MAP FOR(*output) FIELDS((#hidesave *hidden) (#hidedel *hidden) (#hidenew *hidden) (#hidesrch *hidden) (#wrname *hidden))
WEB_MAP FOR(*both) FIELDS((#stdrentry *hidden) (#empnow *hidden))
WebRoutine NAME(Begin)
WEB_MAP FOR(*output) FIELDS(#surname)
#hidedel #hidesave #hidesrch := Y
ENDROUTINE
WebRoutine NAME(empgrid)
WEB_MAP FOR(*input) FIELDS(#surname)
WEB_MAP FOR(*output) FIELDS((#emps *private))
#hidedel #hidesave := Y
EXECUTE SUBROUTINE(bldlist)
ENDROUTINE
WebRoutine NAME(emplist) DESC('Employee List')
WEB_MAP FOR(*input) FIELDS(#surname)
WEB_MAP FOR(*output) FIELDS(#emps)
#hidedel #hidesave := Y
EXECUTE SUBROUTINE(bldlist)
ENDROUTINE
WebRoutine NAME(maint)
WEB_MAP FOR(*both) FIELDS((#empno *out) #empmnt)
#hidedel #hidesave #hidesrch #hidenew := N
#wrname := 'maint'
CASE (#stdrentry)
WHEN (= S)
UPDATE FIELDS(#empmnt) IN_FILE(pslmst) WITH_KEY(#empnow) VAL_ERROR(*next)
IF_STATUS IS(*OKAY)
MESSAGE MSGTXT('Employee changed')
TRANSFER TOROUTINE(begin)
ENDIF
#EMPNO := #EMPNOW
WHEN (= D)
DELETE FROM_FILE(pslmst) WITH_KEY(#empnow) VAL_ERROR(*next)
IF_STATUS IS(*OKAY)
MESSAGE MSGTXT('Employee deleted')
TRANSFER TOROUTINE(begin)
ENDIF
#EMPNO := #EMPNOW
OTHERWISE
FETCH FIELDS(#empmnt) FROM_FILE(pslmst) WITH_KEY(#empno)
#empnow := #empno
MESSAGE MSGTXT('Enter changes and Save')
ENDCASE
ENDROUTINE
WebRoutine NAME(new)
WEB_MAP FOR(*both) FIELDS(#empadd)
#hidedel #hidenew := Y
CASE (#stdrentry)
WHEN (= N)
#empadd := *default
MESSAGE MSGTXT('Enter details and Save')
WHEN (= S)
INSERT FIELDS(#empadd) TO_FILE(pslmst) VAL_ERROR(*next)
IF_STATUS IS(*OKAY)
MESSAGE MSGTXT('New Employee added')
ENDIF
ENDCASE
#wrname := 'new'
ENDROUTINE
SUBROUTINE NAME(bldlist)
CLR_LIST NAMED(#emps)
SELECT FIELDS(#emps) FROM_FILE(pslmst2) WITH_KEY(#surname) GENERIC(*yes)
ADD_ENTRY TO_LIST(#emps)
IF (#listcount = 15)
MESSAGE MSGTXT('First 15 entries shown only')
LEAVE
ENDIF
ENDSELECT
ENDROUTINE