コマンド

63. 入力保護してプロンプト表示するには

コマンドをプロンプト表示させる方法は大別して
次の3つの方法を覚えておくとよい。

(1) コマンド全体をプロンプト表示させる

_

コマンド全体をプロンブト表示してエンド・ユーザーに入力させるには
コマンドの先頭に文字「?」をCLPで付加しておくだけでよい。

[例]

?CPYF

                           ファイル・コピー  (CPYF)                           
                                                                              
選択項目を入力して,実行キーを押してください。                                
                                                                              
FROM ファイル   . . . . . . . .                  名前                         
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB        
TO ファイル   . . . . . . . . .                  名前 , *PRINT                
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB        
FROM メンバー   . . . . . . . .   *FIRST         名前,総称* , *FIRST, *ALL  
TO メンバーまたはラベル   . . .   *FIRST         名前 , *FIRST, *FROMMBR, *ALL
レコードの置き換えまたは追加      *NONE         *NONE, *ADD, *REPLACE...      
ファイル作成  . . . . . . . . .   *NO           *NO, *YES                     
印刷形式  . . . . . . . . . . .   *CHAR         *CHAR, *HEX                   

[解説]

実際にコマンド入力画面で「?CPYF」と入力して実行キーを押すと
このようにコマンド全体が表示される。

(2) エンド・ユーザーに入力させたい項目だけを表示するには

[例] CPYF ??FROMFILE(FILEA) ??TOFILE()

                           ファイル・コピー  (CPYF)                    
                                                                       
選択項目を入力して,実行キーを押してください。                         
                                                                       
FROM ファイル   . . . . . . . . > FILEA          名前                  
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB 
TO ファイル   . . . . . . . . .                  名前 , *PRINT         
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB 
                                                                       

[解説]

この記事を読んでいたら今すぐコマンド入力画面で

CPYF ??FROMFILE(FILEA) ??TOFILE()

と入力して実行すると上記のように文字列 ?? で示した項目だけしか表示されない。

(3) 特定の項目は表示はさせるが入力は保護するには

項目をエンド・ユーザーに示すために表示はさせたいのだが変更はさせたくない場合は
どのようにすればよいだろうか?
それは項目の先頭に ?? ではなく ?* を付加すればよい。

[例]

CPYF ?*FROMFILE(FILEA) ??TOFILE()

                           ファイル・コピー  (CPYF)                    
                                                                       
選択項目を入力して,実行キーを押してください。                         
                                                                       
FROM ファイル   . . . . . . . . > FILEA          名前                  
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB 
TO ファイル   . . . . . . . . .                  名前 , *PRINT         
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB 
                                                                       

[解説]

FROM ファイルの部分は ?* によって表示はされるがユーザーは入力することはできなくなる。

…この3つの方法を使い分ければ大抵の場合のプロンプト表示を表現することができる。
バッチ食や印刷業務で日付や部門コードなどをDSPFで作成するより
コマンドをプロンプト表示させたほうがはめかにスマードで開発も簡単である。
指示画面はできるだけコマンドによるプロンプト表示で行いたいものである。
_