コマンド

1.ユーザー定義のコマンドを作成するには?

ユーザー作成のコマンドの使用を広くお勧めする。
ユーザー作成のコマンドといえば WRKOUTQ などのコマンドを入力する代わりに使用する
簡略コマンドと想像しがちだが、コマンドはプログラムの実行を動的に指示する
(つまりパラメータを与える)ための画面としての働きに注目していただきたい。
指示画面の代わりとしてコマンドを使用すると、

初めて見る指示画面が DSPF であれば、操作をどうすれば良いのかまず捜査員は考えるだろう。
コマンドであれば F3 や F12,F4=プロンプト など既に用意されており、操作方法に悩むようなことはない。
例えば PRT001 という名前のコマンドを作成したとする。
メニューには ?PRT001 と登録しておけば コマンドのプロンプト画面が表示されて指示画面として
表示することができる。
それでは簡単なコマンドの作成を紹介しよう。

【 コマンド原始 】
0001.00              CMD        PROMPT(' 請求書の発行 ')                      
0002.00              PARM       KWD(DATE) TYPE(*DEC) LEN(6 0) PROMPT(' 締日 ')
0003.00              PARM       KWD(OUTQ) TYPE(*CHAR) LEN(10) +           
0004.00                           PROMPT(' 印刷待ち行列 ')       
【 コマンドを処理するCLP原始 】
0001.00              PGM        PARM(&DATE &OUTQ)                     
0002.00 /*---------------------------------------------------------*/ 
0003.00 /*    PRT001    :    請求書の発行                          */ 
0004.00 /*---------------------------------------------------------*/ 
0005.00              DCL        VAR(&DATE) TYPE(*DEC) LEN(6 0)        
0006.00              DCL        VAR(&OUTQ) TYPE(*CHAR) LEN(10)        
0007.00                                                               
0008.00              CHGJOB     OUTQ(&OUTQ)                           
0009.00              CALL       PGM(MYLIB/PRT001) PARM(&DATE)         
0010.00              ENDPGM                          
【 コマンドのコンパイル 】
CRTCMD  MYLIB/PRT001  PGM(MYLIB/PRT001CL)  SRCFILE(MYSRC/QCMDSRC) AUT(*ALL)
【 コマンドの実行画面 】

?PRT001 とメニューに登録するか または 打鍵して実行するか または PRT001 + CF04 で

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
                             請求書の発行  (PRT001)        
                                                           
 選択項目を入力して,実行キーを押してください。            
                                                           
        締日  . . . . . . . . . . . . .       __________       番号
        印刷待ち行列  . . . . . . . . .  ______________   文字値   
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

のように表示される。
もちろん初期値や F4キーによる検索や ヘルプ,妥当性検査など ほとんどの機能を追加できるのは
いうまでもない。