コマンドで入力必須パラメータの指定の方法を紹介する。
最初に入力必須がない場合の動作を見てみよう。
データ・ベースの表示/更新 (DSPFL) 選択項目を入力して,実行キーを押してください。 ファイル . . . . . . . . . . . 名前 ライブラリー . . . . . . . . *LIBL 名前 , *LIBL メンバー . . . . . . . . . . . *FIRST 名前 , *FIRST 終り F3= 終了 F4=プロンプト F5= 最新表示 F10= 追加のパラメーター F12= 取り消し F13= この画面の使用法 F24= キーの続き
[解説]
このままファイル名も入力しないでただ実行キーを押すと結果は
次のようになる。
> DSPFL パラメーター OBJ の値 ' ' が有効な名前でない。
[解説]
これはDSPFLの処理プログラムでエラーになっていることを示している。
このコマンド・ソースを次のように修正してみる。
0001.00 CMD PROMPT(' データ・ベースの表示/更新 ')
0002.00 PARM KWD(FILE) TYPE(FILE) MIN(1) CHOICE(*NONE) +
0003.00 PROMPT(' ファイル ')
0004.00 PARM KWD(MBR) TYPE(*NAME) LEN(10) DFT(*FIRST) +
0005.00 SPCVAL((*FIRST)) PROMPT(' メンバー ')
0006.00 FILE: QUAL TYPE(*NAME) +
0007.00 LEN(10)
0008.00 QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
0009.00 SPCVAL((*LIBL)) PROMPT(' ライブラリー ')
0010.00 PARM KWD(ASCII) TYPE(*CHAR) LEN(10) RSTD(*YES) +
0011.00 DFT(*SHIFT_JIS) VALUES(*SHIFT_JIS *JIS) +
0012.00 PMTCTL(*PMTRQS) PROMPT('ASCII コード ')
[解説]
修正部分は上記の MIN(1) を追加しただけである。
PARM パラメータは初期値が MIN(0)のままであるので
意図的に MIN(1) を追加しておかないと入力漏れを認めてしまうことになる。
コマンドをコンパイルした実行結果は次のとおり
[解説]
ご欄のようにCLプログラムでチェックしなくてもOSが入力漏れを検査して
エラー・メッセージを出力してくれるようになる。
[注意!!]
ただし MIN(1)が全く効かない場合がある。
これはIBM iのバグのように見えるが CHOICEPGM を定義している場合は MIN(1)は全く効かない。
IBM に問い合わせを予定している。