Page History
RDMLX Source for Function iiiFN14 – Create PDF for a single Employee
...
Function Options(*DIRECT)...
* Beginning of RDML commands **********
...
#empno := A1009
...
#std_textl := 'ACME Manufacturing Company, Chicago'
...
#std_name := #datex.asdisplayString( DDsMMsCCYY )
...
#rep1page := 1
...
Def_List Name(#footer1) Fields(#std_name #rep1page) Type(*working)
...
Define Field(#ID) Type(*CHAR) Length(5)
...
Define Field(#FNAME) Type(*CHAR) Length(20)
...
Define Field(#SNAME) Type(*CHAR) Length(30)
...
Def_List Name(#SKILLTBL) Fields(#SKILDESC #GRADEDES #STD_TEXT #COMMENT) Type(*WORKING) Entrys(*max)
...
Def_List Name(#header) Fields(#std_textl #fullname #address1 #address2 #address3 #postcode #phonebus #phonehme #deptdesc #secdesc) Type(*working) Entrys(*max)
...
* Open JSM
...
Use Builtin(JSMX_OPEN) To_Get(#JSMSTS #JSMMSG #jsmxhdle1)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Load Service
...
#jsmxcmd := ('SERVICE_LOAD SERVICE(PDFDOCUMENTSERVICE)')
...
Use Builtin(JSMX_COMMAND) With_Args(#jsmxhdle1 #jsmxcmd) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Create PDF Document
...
* Add Logo
...
Change Field(#JSMXCMD) To('ADD CONTENT(LOGO) ')
...
Use Builtin(JSMx_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Add Header Employee Info
...
Clr_List Named(#header)
...
Fetch Fields(*all) From_File(pslmst) With_Key(#empno) Val_Error(*next)
...
#fullname := #surname + ', ' + #givename
...
Fetch Fields(#deptdesc) From_File(deptab) With_Key(#deptment)
...
Fetch Fields(#secdesc) From_File(sectab) With_Key(#deptment #section)
...
Add_Entry To_List(#header)
...
* If found add content
...
* Get employee skills
...
* ======================
...
Clr_List Named(#skilltbl)
...
Group_By Name(#skills) Fields(#SKILCODE #COMMENT #DATEACQ #SKILDESC #grade)
...
Select Fields(#skills) From_File(pslskl) With_Key(#empno) Nbr_Keys(*compute) Val_Error(*next)
...
Fetch Fields(#skills) From_File(skltab) With_Key(#skilcode) Val_Error(*next)
...
#std_text := #dateacq.asdate( MMDDYY ).asdisplayString( MMsDDsCCYY )
...
* if your locale date format is not MMDDYY, change this value to DDMMYY
...
Execute Subroutine(grade)
...
Add_Entry To_List(#skilltbl)
...
Endselect
...
* If found add employee skills list
...
* Add Footers
...
clr_list #FOOTER1
...
Add_entry #FOOTER1
...
#jsmxcmd := 'ADD CONTENT(FOOTER1)'
...
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD #FOOTER1) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Close document
...
#jsmxcmd := CLOSE
...
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Unload PDF Service
...
#jsmxcmd := SERVICE_UNLOAD
...
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
* Close the JSM
...
Use Builtin(JSMX_CLOSE) With_Args(#jsmxhdle1) To_Get(#JSMSTS #JSMMSG)
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
...
If (#jsmsts = OK)
...
Message Msgtxt('Document iii_EMPREP.pdf produced')
...
Endif
...
*
...
* Check the status of the JSM command issued
...
*
...
Subroutine Name(CHECK_STS) Parms(#W_HDLE)
...
*
...
Define Field(#MSGDTA) Type(*CHAR) Length(132)
...
Define Field(#W_HDLE) Type(*CHAR) Length(4)
...
*
...
If Cond('#JSMSTS *NE OK')
...
*
...
#MSGDTA := 'Error Status Code: ' + #JSMSTS
...
Message Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MSGDTA)
...
#MSGDTA := 'Error Message: ' + #JSMMSG
...
Message Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MSGDTA)
...
Endif
...
*
...
Def_List Name(#WL_MSGS) Fields(#JSMSTS #JSMMSG) Type(*WORKING) Entrys(*max)
...
Add_Entry To_List(#WL_MSGS)
...
Endroutine
...
Subroutine Name(grade)
...
Case (#grade)
...
When (= P)
...
#gradedes := 'Pass'
...
When (= F)
...
#gradedes := 'Fail'
...
When (= M)
...
#gradedes := 'Merit'
...
When (= D)
...
#gradedes := 'Distinction'
...
Endcase
...
Endroutine
...
* End of RDML commands **********