■ 構文
CALLP ADDREPORT('REPORTタグの番号')
■ 戻り値
なし
■ 引数
REPORTタグの番号(4A) | '4桁以内の数値' |
---|
■ 解説
REPORT文をSETFLDのトリガーによる暗黙的な追加ではなく明示的に追加したい場合に使用してREPORT文を
追加します。
例えば、トリガーとなるSETFLD操作がない場合や空のREPORT文だけを追加させたいような場合に使用します。
#への埋め込みを含んでいないREPORT文の場合は、その典型的な例です。
#への埋め込みがないわけですからSETFLDによるREPORT文の暗黙的な追加は行えません。
このようなときにADDREPORTを使用するとREPORT文を追加することができます。
引数は何番目のREPORT文に追加するかを4桁以内の数字で指定します。
● 使用例
HTMLテンプレートではREPORTタグ内に埋め込み対象の$(FIELD)を記載します。
<h1><FLD NAME=STITLE>##########</FLD></h1> <table> <REPORT><tr> <td>$(SHCODE)</td> <td>$(SHNAME)</td> </tr></REPORT> </table> <table> <REPORT><tr> <td align="right">$(SHTANK)</td> <td>$(SHSCOD)</td> </tr></REPORT> </table>
RPGではADDREPORTでREPORT文を追加して$(FIELD)への埋め込みを行います。
C 1 DO MAXGYO RECORD 4 0 : C CALLP ADDREPORT('0001') C CALLP ADDREPORT('0002') : C CALLP SETFLD('$(SHCODE)': SHCODE) C CALLP SETFLD('$(SHNAME)': SHNAME) C CALLP SETFLD2('$(SHTANK)': C %CHAR(SHTANK):7:0:10:'J') C CALLP SETFLD('$(SHSCOD)': SHSCOD) C ENDDO
この例では、最初の ADDREPORT('0001')
で最初の<table>タグ内に
REPORTタグが追加され、次の ADDREPORT('0002')
で2つ目の<table>タグ内に
REPORTタグが追加されます。
● 注意点
※ADDREPORTを使用する場合、HTMLテンプレート内のREPORT文は全て$(FIELD)への埋め込みのみを
使用するようにしてください。
REPORT文中で<FLD NAME=XXXX> …###…#… </FLD> への埋め込みとの併用は避けてください。
使用するようにしてください。
REPORT文中で<FLD NAME=XXXX> …###…#… </FLD> への埋め込みとの併用は避けてください。
【正しい使用例】
REPORT文中で$(FIELD)のみを使用している例
<h1><FLD NAME=STITLE>##########</FLD></h1> <table> <REPORT><tr> <td>$(SHCODE)</td> <td>$(SHNAME)</td> </tr></REPORT> </table> <table> <REPORT><tr> <td align="right">$(SHTANK)</td> <td>$(SHSCOD)</td> </tr></REPORT> </table>
【誤った使用例】
下記のようにREPORT文中で<FLD NAME=XXXX> …###…#… </FLD>が混在すると
正しく動作しない場合があります。
<h1><FLD NAME=STITLE>##########</FLD></h1>
<table>
<REPORT><tr>
<td>$(SHCODE)</td>
<td>$(SHNAME)</td>
</tr></REPORT>
</table>
<table>
<REPORT><tr>
<td align="right">$(SHTANK)</td>
<td><FLD NAME=SHSCOD>####</FLD></td>
</tr></REPORT>
</table>