ILE-RPGでの定義仕様書(D)の構造体の定義も
便利になったのは QUALIFIED が使えるようになったことである。
それまでの RPG III の構造体(=データ・ストラクチャー: DATA STRUCTURE)
であれば同じ名前のフィールドは他で定義することはできなかった。
もうひとつ不便であったのは構造体で定義されたフィールド名を
演算中で使用するときに単なるひとつのフィールドとして使用するので
演算の読み手がそれは構造体のフィールドであると直ちに認識することが
できなかったことである。
このフィールドは構造体の演算をしていることを示せれば
いっそう読み手はわかりやすくなる。
QUALIFIEDとは構造体ごとのフィールドであることを識別する命令である。
[RPG IIIの演算]
TESTDAT
0001.00 I*( WORK 日付 YYMMDD データ 構造 ) 0002.00 IDATEDS DS 0003.00 I 1 20CENTRY 0004.00 I 3 80YYMMDD 0005.00 I 3 40YY 0006.00 I 5 60MM 0007.00 I 7 80DD 0008.00 C Z-ADD20 CENTRY 0009.00 C Z-ADDUDATE YYMMDD 0010.00 *( 日付を +10 日進める ) 0011.00 C ADD 10 DD
[解説]
RPG IIIの良くないところは書いた本人した理解できなくなってしまうところである。
このDSを使った絵火山を見てもDSの記憶がないとどのフィールドであるか
調べなければならない。つまり書いた本人しかわからなくなってしまうのが
RPG IIIであった。
_
[ILE-RPGの演算]
TESTDAT
0001.00 D*( WORK 日付 YYMMDD データ 構造 )
0002.00 D DATEDS DS QUALIFIED
0003.00 D CENTURY 1 2 0 INZ(20)
0004.00 D YYMMDD 3 8 0
0005.00 D YY 3 4 0
0006.00 D MM 5 6 0
0007.00 D DD 7 8 0
0008.00 D CYY 1 4 0
0009.00
0010.00 /FREE
0011.00 DATEDS.YYMMDD = UDATE;
0012.00 // 日付を +10 日進める )
0013.00 DATEDS.DD += 10;
0014.00 /END-FREE
0001.00 D*( WORK 日付 YYMMDD データ 構造 ) 0002.00 D DATEDS DS QUALIFIED 0003.00 D CENTURY 1 2 0 INZ(20) 0004.00 D YYMMDD 3 8 0 0005.00 D YY 3 4 0 0006.00 D MM 5 6 0 0007.00 D DD 7 8 0 0008.00 D CYY 1 4 0 0009.00 0010.00 /FREE 0011.00 DATEDS.YYMMDD = UDATE; 0012.00 // 日付を +10 日進める ) 0013.00 DATEDS.DD += 10; 0014.00 /END-FREE
QUALIFIED で定義されたデータ・ストラクチャー(データ構造)は
データ構造名を最初に付加して表示すしているので
フィールドの意味をただちに理解できる。
_
— QUALIFIED とは資格を与えるという意味である。受験資格があるとか参加資格があるとかいうような場合に使われる。