RPG3で対話型のプログラムを作成するには
ユーザーとのインタフェースである「表示装置ファイル」と表示装置ファイルと制御、データの受け渡しをして、データベースに登録する「RPG3プログラム」を作成する必要があります。
表示装置ファイルの作成手順
- パネルに含めるデータ項目の決定
- DDSのコーディング
- DDSの打鍵(STRSEU)
- 表示装置ファイルの作成(CRTDSPF)
パネルの設計
1つの表示装置ファイルのなかに、複数のパネルを定義します。
パネルは、プログラムでデータを読み書きする単位です。
パネルのレコードがどのようなフィールドから構成されているかとうい情報を「レコード様式」という。
データベースの物理ファイルも同じですが、「レコード様式」の単位で、データの読み書きをします。
表示装置ファイルとRPGプログラムの制御の仕方
ブラウザを使ったWebアプリケーションの場合は、ボタンを押したり、クリックしたタイミングで、ブラウザからサーバー側にリクエストを送信できます。制御がサーバー側のプログラムに移ります。
PCにインストールするクライアントアプリケーションの場合は、ボタンを押すなどのユーザーのアクションでイベントハンドラーに制御が移ります。
AS400のエミュレーター(表示装置ファイル)のアプリケーションの場合は、2種類あります。
- 実行キーを押す。
- 使用可能なコマンドキーまたは機能キーを押す。
RPGプログラムでは最初に画面を表示する準備をして、画面表示の命令を出します。
プログラムの制御は画面からの入力待ち状態になります。
特定のキー(上記の2種類)を打鍵したタイミングで、RPGプログラムに制御が移ります。
このときには、特定の処理(関数)を直接、呼び出すことはできませんが、キーを打鍵したときに標識(フラグ)の値をセットすることはできます。標識とはBoolean変数のようなもので、ONとOFFの状態を持ちます。RPGは最初から標識というものが提供されていますので、自分で変数宣言をしなくても利用できます。
どのキーを打鍵したのかを、RPGプログラム側で標識の値で判定し、特定の処理(関数)を呼び出します。
このセットする標識を「応答標識」といいます。
応答標識は、機能キー(ファンクションキー)やコマンドキーを押すことによってセットされます。
どのキーを押すと、どの標識にセットするのかを表示装置ファイルのDDSに記入します。
表示装置ファイルのDDSの記入順序
- ファイル全体に関する指定(ファイル・レベル)
- レコード様式に関する指定(レコード・レベル)
- 援助操作に関する指定(ヘルプ・レベル)
- フィールドに関する指定(フィールド・レベル)
※2,3,4はレコード様式(パネル)の数だけ繰り返し
表示装置ファイルのキーワード
機能キー
PRINT(ファイルレベル)
PRINTキーワードは印刷機-(PRINTキー)を使用できるするためのキーワードです。
PRINT(ファイル名)・・・パネルの内容を印刷する印刷装置ファイルの名前を指定。
PRINT(標識)・・・指定した標識をオンにしてプログラムへ渡す。
PRINT 指定なし・・・表示装置に割り当てられている印刷装置に印刷される。
指令キー
CAnn,CFnn(ファイルレベル、レコードレベル)
CAnn(標識 ‘説明文’)
CFnn(標識 ‘説明文’)
nnには01~24のコマンドキーの番号が入ります。
CF(Command Function)ではパネル上の入力データをプログラムへ渡すが、CA(Command Attention)では、妥当性チェックも行われず、プログラムへもデータを渡しません。
表示画面の制御
OVERLAY,CLRL,ERASE,PROTECT(レコードレベル)
OVERLAYキーワードは、現在表示されているレコード様式を消去せずに新しいレコード様式を表示します。
CLRL(Clear Line)は、画面像の複数のレコード様式が同一行を使用していても、重ねあわせて表示させます。CLRL(*NO)で、消去しないの意味です。
ERASEキーワードはパネル上の必要ないレコード様式を消去するために使用します。
PROTECTキーワードは同一時点で複数のレコード様式が表示されている場合、特定のレコード様式に入力を限定するために使用します。限定したパネルにカーソルが移動します。PROTECTは必ずOVERLAYと共に指定します。
説明文
TEXT(レコードレベル、フィールドレベル)
TEXTキーワードは、レコード様式またはフィールドに説明文を指定するために使用します。
表示属性
DSPATR,COLOR(フィールドレベル)
DSPATRキーワードは表示方法にいろいろな変化をつけるために使用します。入力フィールド、入出力フィールドには自動的に下線が引かれます。パラメーターは英字2桁の略号で指定します。
- RI(Reverse Image)反転イメージ
- BL(BLink)明滅
- HI(High Intensity)高輝度
- CS(Column Separator)桁区切り線
- UL(Under Line)下線
- PC(Postion Cursor)カーソル位置づけ
- PR(PRotect)フィールド保護
- ND(Non Display)非表示
COLORキーワードはフィールドのカラー表示についての指定を行うために使用します。
組み合わせによっていはDSPATRのパラメーターは無効になります。
高輝度(HI)、桁区切線(CS)はCOLORキワードを指定すると無効になります。
明滅(BL)が有効なCOLORは赤(RED)だけです。
妥当性チェック
CHECK,COMP,RANGE,VALUES(フィールドレベル)
妥当性チェックのキーワードは入力データをユーザープログラムでせずに、表示装置側でチェックする場合に使います。誤ったデータを打鍵するとエラーメッセージが表示されロックされます。Escキーによってロックが解除され、データを再打鍵できるようになります。
CHECKキーワードのパラメーター
- ME(Mandatory Enter)少なくとも1文字は入力しなければならない
- MF(Mandatory Fill)1文字は入力したら全桁入力しなければならない
- MF MF 両方指定すると、必ず千桁入力しなければならない
COMPキーワードは大小比較チェック、RANGEキーワードは範囲チェック、VALUESキーワードは列挙値のチェックを行う。
1つのフィールドに関してCOMP,RANGE,VALUESは1つだけで、1回しか使えません。組み合わせたチェックはプログラムの中で行う。
編集
EDTCDE(フィールドレベル)
EDTCDEキーワードは数字フィールドの表示方法(編集コード)を指定するために使用します。
EDTCDE(編集コード 通過記号)
日付・時刻
DATE,TIME(フィールドレベル)
DATEキーワードはジョブの開始日付をパネルに表示するために使用します。
TIMEキーワードはシステム時刻をパネルに表示するために使用します。
エラーメッセージ
ERRMSG(フィールドレベル)
ERRMSGキーワードはエラーメッセージをメッセージ表示行(25行目、PCOMMの場合は最下部のステータスバー)に表示するために使用します。
指定した位置に表示する場合は、このキーワードを使うのではなく、選択標識と固定情報(メッセージ)を使います。
RPGプログラムの作成手順
- プログラム処理内容の決定
- プログラム流れ図の作成
- プログラムのコーディング
- RPGソースの打鍵(STRSEU)
- RPGプログラムの作成(CRTRPGPGM)
バッチプログラムの作成手順と同じになります。対話型プログラムの場合はコンパイル前に表示装置ファイルを作成(コンパイル)しておく必要があります。プログラムを作成した後で、表示装置ファイルの再作成を行った場合は、プログラムもコンパイルしなおす必要があります。ただし、プログラムとパネル間で受渡しされる入力、出力、入出力フィールドの桁数や属性、および標識(応答標識と選択標識)に変更がなければプログラムはコンパイルしなおす必要がありません。