RPG

413. RPGで独自の標識を定義するには?

他の言語からIBM iの開発に移ってきた人で違和感を
覚えるのが

① 演算命令の固定フォーマットによる記述

② *IN01~99 の標識の使用

である。
①に関しては今では演算でフリー・フォーマットが使えるようになって
これは解決されている。
それでは②の標識はどうだろう。
以前に「119.名前による標識を使うには ?」で一般の*IN01~99までの標識を
命名する方法を紹介したがここに紹介する方法はもっと簡単である。
ILE-RPGではフィールドと同じように標識も名前をつけて定義することが
できるのである。
標識に名前を命名することができれば他の開発言語のBOOL変数と同じことであり
違和感なく標識を使うことができる。

D-仕様書において

   D bDUP            S              1N   INZ(*OFF)

と、たったこれだけの記述である。
演算命令では

   C                   EVAL      bDUP = *OFF

や、または

   C                   IF        bDUP = *ON
              :               
   C                   ENDIF               

のようにして使用することができる。
さらに

   C                   IF        bDUP 
              :               
   C                   ENDIF               

と書くこともできる。

要はタイプ N標識を示しているということである。
これはCLPで定義できる論理値と同じものである。

このように名前による標識で意味がすぐに判別できるようにしておけば
後からソースを見ても非常にわかりやすいものとなる。