読者です 読者をやめる 読者になる 読者になる

タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】DSPLY(メッセージ表示)

概要

DSPLY命令を使えば、プログラム実行時に変数の値を画面に表示させたり、ユーザーからの入力値を受け取ることができます。

  • DSPLY命令のレコード様式: 1表示可能な情報の最大長は52バイトです。(ILE RPG解説書より)
  • DSPLY命令がエラーになる条件=入力値エラー(桁あふれ等)が5回発生した場合

記述形式

  • 固定フォーマット
コード:DSPLY(E)
演算項目1:メッセージ
演算項目2:出力待ち行列
結果フィールド:応答
標識:-ER-
C     'HELLO ! '    DSPLY        
C     'WORLD !!'    DSPLY                 
C*
C* 入力待ち?
C     'INPUT(1)?'   DSPLY                   ANS
C     ANS           DSPLY
C* MSGQへ出力
C     D1URID        DSPLY     'QSYSOPR'  
C     D1JBNO        DSPLY     'QSYSOPR'
  • フリーフォーマット
DSPLY(E)  メッセージ  出力待ち行列  応答
/FREE
DSPLY ('--(START)----' + %CHAR(W@DEC1) + '--');    
DSPLY COMMENT(1) '' INPUTKEY; 
    IF INPUTKEY='C' ; 
        // 処理を記述
    ENDIF;
/END-FREE

サンプル(RPGLESRC SAMPLE10)

D******************************************************************
D* 変数/配列定義
D******************************************************************
D COMMENT         S             50    DIM(3) CTDATA PERRCD(1)
D INPUTKEY        S              1A
D* 
D******************************************************************
D* MAIN
D******************************************************************
 /FREE
     DSPLY(E) COMMENT(1) '' INPUTKEY;
     IF %ERROR;  
        DSPLY(E) COMMENT(2);
     ELSE; 
         IF INPUTKEY='Z';
              DSPLY(E) COMMENT(3); 
         ENDIF; 
     ENDIF; 
     *INLR = *ON; 
     RETURN; 
 /END-FREE
* COMMENT
DSPLY 命令のテストです。 
 エラーが発生しました。
Z が入力されました!  

実行結果(V7R01)

> CALL SAMPLE10
 DSPLY  DSPLY 命令のテストです。  
 X                                 
 DSPLY   X が入力されました!      
 
> CALL SAMPLE10
 DSPLY  DSPLY 命令のテストです。 
 AAA                               
 DSPLY  DSPLY 命令のテストです。   
 BBB                               
 DSPLY  DSPLY 命令のテストです。   
 CCC                               
 DSPLY  DSPLY 命令のテストです。   
 DDD                               
 DSPLY  DSPLY 命令のテストです。   
 EEE                               
 DSPLY   エラーが発生しました。