Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 FORMAP FOR(*both) FIELDS FIELDS((#stdrentry #stdrentry *hidden)  (#empnow #empnow *hidden))
WebRoutine NAME WebRoutine NAME(Begin)
WEB_MAP FORMAP FOR(*output) FIELDS FIELDS(#surname)
#hidedel #hidesave #hidesrch  #hidedel #hidesave #hidesrch := Y
ENDROUTINE
WebRoutine NAME Y
ENDROUTINE
WebRoutine NAME(empgrid)
WEB_MAP FORMAP FOR(*input) FIELDS FIELDS(#surname)
WEB_MAP FORMAP FOR(*output) FIELDS FIELDS((#emps #emps *private))
#hidedel #hidesave  #hidedel #hidesave := Y
EXECUTE SUBROUTINE Y
EXECUTE SUBROUTINE(bldlist)
ENDROUTINE
WebRoutine NAME WebRoutine NAME(emplist) DESC DESC('Employee ListEmployee List')
WEB_MAP FORMAP FOR(*input) FIELDS FIELDS(#surname)
WEB_MAP FORMAP FOR(*output) FIELDS FIELDS(#emps)
#hidedel #hidesave  #hidedel #hidesave := Y
EXECUTE SUBROUTINE Y
EXECUTE SUBROUTINE(bldlist)
ENDROUTINE
WebRoutine NAME WebRoutine NAME(maint)
WEB_MAP FORMAP FOR(*both) FIELDS FIELDS((#empno #empno *out) #empmnt #empmnt)
#hidedel #hidesave #hidesrch #hidenew  #hidedel #hidesave #hidesrch #hidenew := N
#wrname  N
#wrname :=  'maint'
CASE  CASE (#stdrentry)
WHEN  WHEN (= S S)
UPDATE FIELDS UPDATE FIELDS(#empmnt) IN IN_FILE(pslmst) WITH WITH_KEY(#empnow) VAL VAL_ERROR(*next)
IF_STATUS ISSTATUS IS(*OKAY)
MESSAGE MSGTXT MESSAGE MSGTXT('Employee changedEmployee changed')
TRANSFER TOROUTINE TRANSFER TOROUTINE(begin)
ENDIF
#EMPNO  #EMPNO := #EMPNOW
WHEN (= D)
DELETE FROM #EMPNOW
WHEN (= D)
DELETE FROM_FILE(pslmst) WITH WITH_KEY(#empnow) VAL VAL_ERROR(*next)
IF_STATUS ISSTATUS IS(*OKAY)
MESSAGE MSGTXT MESSAGE MSGTXT('Employee deletedEmployee deleted')
TRANSFER TOROUTINE TRANSFER TOROUTINE(begin)
ENDIF
#EMPNO  #EMPNO := #EMPNOW
OTHERWISE
FETCH FIELDS #EMPNOW
OTHERWISE
FETCH FIELDS(#empmnt) FROM FROM_FILE(pslmst) WITH WITH_KEY(#empno)
#empnow  #empnow := #empno
MESSAGE MSGTXT('Enter changes and Save #empno
MESSAGE MSGTXT('Enter changes and Save')
ENDCASE
ENDROUTINE
WebRoutine NAME WebRoutine NAME(new)
WEB_MAP FORMAP FOR(*both) FIELDS FIELDS(#empadd)
#hidedel #hidenew 
#hidedel #hidenew := Y
CASE  Y
CASE (#stdrentry)
WHEN  WHEN (= N N)
#empadd  #empadd :=  *default
MESSAGE MSGTXT     MESSAGE MSGTXT('Enter details and Save')
WHEN      WHEN (= S)
INSERT FIELDS     INSERT FIELDS(#empadd) TO_FILE(pslmst) VAL_ERROR(*next)
IF     IF_STATUS IS(*OKAY)
MESSAGE MSGTXT     MESSAGE MSGTXT('New Employee added')
ENDIF
ENDCASE
#wrname      ENDIF
     ENDCASE
     #wrname := 'new'
ENDROUTINE
SUBROUTINE NAME     ENDROUTINE
     SUBROUTINE NAME(bldlist)
CLR     CLR_LIST NAMED(#emps)
SELECT FIELDS     SELECT FIELDS(#emps) FROM_FILE(pslmst2) WITH_KEY(#surname) GENERIC(*yes)
ADD     ADD_ENTRY TO_LIST(#emps)
IF      IF (#listcount = 15)
MESSAGE MSGTXT     MESSAGE MSGTXT('First 15 entries shown only')
LEAVE
ENDIF
ENDSELECT
ENDROUTINE     LEAVE
     ENDIF
     ENDSELECT
   ENDROUTINE