RPG

464. QUALIFIED で便利になった

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                                       

QUALIFIED で定義されたデータ・ストラクチャー(データ構造)は
データ構造名を最初に付加して表示すしているので
フィールドの意味をただちに理解できる。
_

— QUALIFIED とは資格を与えるという意味である。受験資格があるとか参加資格があるとかいうような場合に使われる。