Page History
...
ファンクション「iiiFN14 – 社員 1 名分の PDF 作成」の RDMLX ソース
| Code Block |
|---|
Function Options(*DIRECT) |
...
* RDML コマンド の開始 ********** |
...
...
#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) |
...
* PDF ドキュメントの作成 * ロゴ追加 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) |
...
* 見つかった場合、コンテンツを追加 * 社員スキル取得 * ====================== |
...
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 * 見つかった場合、社員のスキル・リストを追加 * フッターの追加 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) |
...
* ドキュメントを閉じる #jsmxcmd := CLOSE |
...
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG) |
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1) |
...
* PDF サービスのアンロード #jsmxcmd := SERVICE_UNLOAD |
...
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG) |
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1) |
...
* JSM を閉じる Use Builtin(JSMX_CLOSE) With_Args(#jsmxhdle1) To_Get(#JSMSTS #JSMMSG) |
...
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1) |
...
If (#jsmsts = OK) |
...
Message Msgtxt('ドキュメント iii_EMPREP.pdf が作成されました') |
...
Endif |
...
* * 発行された JSM コマンドのステータスを確認 * 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 * RDML コマンド終了 ********** |
...