RPG4になって、I仕様書とE仕様書は廃止されました。
D仕様書を使って変数、配列、定数、DSなどを記述していきます。
特にこのD仕様書は色々便利になっている反面、戸惑うところもありましたので
備忘録も兼ねて画像を交えながら記載します。
基本的な使い方
まずはRPG3で使用していたDSや配列のイメージをRPG4ではどのように書くか。
- DS名の指定
- 桁指定と型指定
- 桁位置指定
- DSを配列にする方法
- DSの初期値


このDS名を使用する場合は「DS_TEST」で可能です。

フィールドは桁で指定するのが良いと思いますが、桁位置指定も可能です。

もちろんFLD1〜FLD3の桁を指定した項目を用意することも可能です。
とはいえ、やはりここは桁指定のみに留めて
まとめて使用する場合は別途連結する方がわかりやすいようです。

DIMが配列の要素数の指定で
OVERLAYでDS定義を流用しています。

便利な使い方



DS名.フィールド名という形でアクセスが可能になります。

どこの何に代入しているかがすぐわかりますね。

DSをE DSという外部指定に変えて
EXTNAME(ファイル名:オプション)という記載すると、
ファイルからフィールド構成を取得することができます。
ファイル名のところはLIB/FILEという記述も可能です。
LIBを省略するとライブラリーリストから参照されます。
*ALL | 全てのフィールドを抜き出す |
*INPUT | 入力可能フィールドのみを抜き出す |
*OUTPUT | 出力可能フィールドのみを抜き出す |
*KEY | キーフィールドのみを抜き出す |

QUALIFIED指定もあるため、このような記述が可能です。
RPG4ではキーの指定はKLISTも使用出来ますが
%KDSという関数が用意されているため、こちらを使用するのが良いと思います。
E DSでファイルからキーを取得して、それを%KDSで使うのが効率的ですね。
上記のTESTFILEのキー指定を部分を取得する場合は
TESTKEY E DS EXTNAME(TESTFILE:*KEY)
QUALIFIED
こんな記載で可能です。