INT013 - 付録 C
INT013 - PDFDocumentService を使用して PDF ドキュメントを作成
「iiiFN15 – 社員用 PDF 出力を作成」を完成する RDMLX ソースコード
- 苗字により選択された社員用の PDF ドキュメントを生成
When (= S)
#outsts := *blanks
#rep1page := 1
Select Fields(*all) From_File(pslmst2) With_Key(#surname) Nbr_Keys(*compute) Generic(*yes) - ロゴ追加
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) - Clear employee header list
Clr_List Named(#header)
#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_Status Is(*OKAY)
Change Field(#JSMXCMD) To('ADD CONTENT(HEADER) ')
Use Builtin(JSMx_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD #HEADER) To_Get(#JSMSTS #JSMMSG)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
#outsts := OK
Else
Message Msgtxt('社員が見つかりませんでした。苗字:' + #surname)
Leave
Endif - 社員スキル・リストを追加
- 社員スキル取得
- ======================
Clr_List Named(#skilltbl)
Select Fields(#skills) From_File(pslskl) With_Key(#empno) Nbr_Keys(*compute) Generic(*yes) 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_Status Is_Not(*error)
Change Field(#JSMXCMD) To('ADD CONTENT(SKILLTBL) SERVICE_LIST(SKILDESC,GRADEDES,DATEACQ,COMMENT)')
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG #SKILLTBL)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
Else
Message Msgtxt('社員のスキルが見つかりません')
Endif
Execute Subroutine(footer)
#rep1page += 1
Endselect
If (#outsts = OK)
Execute Subroutine(CLOSE)
Else
Message Msgtxt('出力は生成されませんでした') - JSM を閉じる
Use Builtin(JSMX_CLOSE) With_Args(#jsmxhdle1) To_Get(#JSMSTS #JSMMSG)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
Endif - 部門により選択された社員用の PDF ドキュメントを生成
When (= D)
#rep1page := 1
#outsts := *blanks
Select Fields(*all) From_File(pslmst1) With_Key(#deptment) Nbr_Keys(*compute) - ロゴ追加
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) - Clear employee header list
Clr_List Named(#header)
#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_Status Is(*OKAY)
Change Field(#JSMXCMD) To('ADD CONTENT(HEADER) ')
Use Builtin(JSMx_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD #HEADER) To_Get(#JSMSTS #JSMMSG)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
#outsts := OK
Else
Message Msgtxt('社員が見つかりませんでした。部門:' + #deptment)
Leave
Endif - 社員スキル・リストを追加
- 社員スキル取得
- ======================
Clr_List Named(#skilltbl)
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 ) - ロケールの日付形式が MMDDYY ではない場合、値をDDMMYY に変更
Execute Subroutine(grade)
Add_Entry To_List(#skilltbl)
Endselect
If_Status Is_Not(*error)
Change Field(#JSMXCMD) To('ADD CONTENT(SKILLTBL) SERVICE_LIST(SKILDESC,GRADEDES,DATEACQ,COMMENT)')
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG #SKILLTBL)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
Else
Message Msgtxt('社員のスキルが見つかりません')
Endif
Execute Subroutine(footer)
#rep1page += 1
Endselect
If (#outsts = OK)
Execute Subroutine(CLOSE)
Else - JSM を閉じる
Use Builtin(JSMX_CLOSE) With_Args(#jsmxhdle1) To_Get(#JSMSTS #JSMMSG)
Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
Message Msgtxt('出力は生成されませんでした')
Endif