SmartPad4i , Cobos4iではRPGⅢプログラムでサブファイルを使用する際、1レコードで1000byteの転送がデフォルトの設定となります。 ※RPGLE , COBOLでは32676byteになります。
そのため、サブファイルでComboボックスを使用する場合等、1レコードに多くのデータを設定したい場合には、RPGⅢプログラムを変更する必要がございます。
Tipsではその方法についてご説明します。
1レコードで1000byteを超えるか確認
サブファイルに項目数の多いコンボボックスを複数設定している場合、1レコードの出力データが1,000byteを超えることがあります。


ライブラリに展開されたI/Oファイルを確認する場合、DSPFFDコマンドでレコード長を確認できます。
レコード長が1,000byteを超える場合には、RPGをご変更ください。

例) TIPS2505ライブラリのTIPS0102Oファイルを確認する場合
DSPFFD FILE(TIPS2505/TIPS0102O)
RPGⅢの変更
WORKING BUFFERの変更
展開されたRPGⅢプログラムのWORKING BUFFERの箇所を書き換えます。
以下のようにSPBUFFは1,000byteのサイズです。
0059.00 * WORKING BUFFER
0060.00 ISPBUFF DS
0061.00 I 1 250 SPBUF1
0062.00 I 251 500 SPBUF2
0063.00 I 501 750 SPBUF3
0064.00 I 7511000 SPBUF4
DSの一つ目のサイズを調整します。
最大9,999byteに設定可能です。
0060.00 ISPBUFF DS
0061.00 I 19999 SPBUFT
0062.00 I* 251 500 SPBUF2
0063.00 I* 501 750 SPBUF3
0064.00 I* 7511000 SPBUF4
DSの「繰返し」数の変更
レコードサイズが大きい場合、RPGⅢコンパイル時にCPF6563「作成するプログラムが大きすぎる」のエラーが発生します。
プログラムサイズ制限のためです。
その場合、9999ある繰返し要素の数値を減らした後にコンパイルをしてください。
0033.00 ISOOF02 E DSTIPS0102O 9999
0034.00 ISOIF02 E DSTIPS0102I 9999
例) 9999から999に変更
0033.00 ISOOF02 E DSTIPS0102O 999
0034.00 ISOIF02 E DSTIPS0102I 999