ユーザーの入力値に応じて次に表示するプロンプトを変更したい場合がある。
例えば SAVLIB コマンドでは装置名に TAP01 と指定するのと *SAVF と
指定するのでは次に表示される値が変わってくる。
*SAVF を指定した場合には *SAVF の名前を入力するためのパラメータが表示される。
このようにユーザーの入力に応じて次に表示するプロンプトを変更する方法を「プロンプト制御」と呼ぶ。
プロンプト制御のためには PMTCTL パラメータによってプロンプト制御の名前と制御の方法を決めて、
各制御パラメータに PMTCTL の名前を指定する。
つまり PMTCTL がプロンプト制御のための条件文であり、条件があることを PARM に指定するわけである。
次にプロンプト制御の使用例を示す。
0001.00 CMD PROMPT(' パネル GRP 保管 ')
0002.00 PARM KWD(GRP) TYPE(*GENERIC) LEN(10) +
0003.00 SPCVAL((*ALL)) MAX(30) PROMPT(' パネル GRP')
0004.00 PARM KWD(OBJLIB) TYPE(*NAME) LEN(10) MIN(1) +
0005.00 PROMPT(' ライブラリー ')
0006.00 PARM KWD(DEV) TYPE(*NAME) LEN(10) SPCVAL((*SAVF)) +
0007.00 PROMPT(' 装置 ')
0008.00 PARM KWD(SAVOBJ) TYPE(*CHAR) LEN(5) RSTD(*YES) +
0009.00 DFT(*BOTH) VALUES(*DFN *OBJ *BOTH) +
0010.00 PROMPT(' オブジェトまたは定義 ')
0011.00 PARM KWD(TGTRLS) TYPE(*CHAR) LEN(8) RSTD(*YES) +
0012.00 DFT(*CURRENT) VALUES(*CURRENT *PRV V2R2M0 +
0013.00 V2R3M0 V3R0M5 V3R1M0 V3R2M0 V3R6M0 V3R7M0 +
0014.00 V4R1M0) PROMPT(' 目的リリース ')
0015.00 SAVTAP: PMTCTL CTL(DEV) COND((*NE *SAVF))
0016.00 PARM KWD(ENDOPT) TYPE(*CHAR) LEN(7) RSTD(*YES) +
0017.00 DFT(*REWIND) VALUES(*REWIND *LEAVE +
0018.00 *UNLOAD) PMTCTL(SAVTAP) +
0019.00 PROMPT(' テープ終了オプション ')
0020.00 SAVFIL: PMTCTL CTL(DEV) COND((*EQ *SAVF))
0011.00 PARM KWD(TGTRLS) TYPE(*CHAR) LEN(8) RSTD(*YES) +
0012.00 DFT(*CURRENT) VALUES(*CURRENT *PRV V2R2M0 +
0013.00 V2R3M0 V3R0M5 V3R1M0 V3R2M0 V3R6M0 V3R7M0 +
0014.00 V4R1M0) PROMPT(' 目的リリース ')
0015.00 SAVTAP: PMTCTL CTL(DEV) COND((*NE *SAVF))
0016.00 PARM KWD(ENDOPT) TYPE(*CHAR) LEN(7) RSTD(*YES) +
0017.00 DFT(*REWIND) VALUES(*REWIND *LEAVE +
0018.00 *UNLOAD) PMTCTL(SAVTAP) +
0019.00 PROMPT(' テープ終了オプション ')
0020.00 SAVFIL: PMTCTL CTL(DEV) COND((*EQ *SAVF))
0021.00 PARM KWD(SAVF) TYPE(SAVF) PMTCTL(SAVFIL) +
0022.00 PROMPT(' 保管ファイル ')
0023.00 SAVF: QUAL TYPE(*NAME) LEN(10) MIN(1) EXPR(*YES)
0024.00 QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
0025.00 SPCVAL((*LIBL) (*CURLIB)) EXPR(*YES) +
0026.00 PROMPT(' ライブラリー ')
0027.00 PARM KWD(UPDHST) TYPE(*CHAR) LEN(4) RSTD(*YES) +
0028.00 DFT(*YES) VALUES(*YES *NO) PMTCTL(SAVFIL) +
0029.00 PROMPT(' 活動記録更新 ')
【 解説 】
上記では 装置(DEV)に入力によって *SAVF が入力された場合は SAVFIL という
PMTCTL が有効になり、そうでない場合は SAVTAP という PMTCTL が有効になる。
PARM KWD(SAVF) TYPE(SAVF) PMTCTL(SAVFIL) +
PROMPT(' 保管ファイル ')
でわかるように「保管ファイル」というパラメータは SAVFIL が有効のときのみに表示されるような
仕組みとなっている。
