30.5.2 CBLINPUTDLG
CBLINPUTDLGサービスルーチンは,引数で指定した文字列をダイアログボックスに表示したあと,そのダイアログボックスから入力された文字列を受け取るものです。なお,入力用の領域に入力された文字列は,左詰めで格納されます。
- 形式
CALL 'CBLINPUTDLG' USING 引数1 引数2 引数3
- 引数
-
-
引数1には,次に示すインタフェース領域の名前を指定します。
表30‒3 CBLINPUTDLGサービスルーチンのインタフェース領域 記述形式
内容
01 データ名1.
CALL文のUSINGで指定するインタフェース領域の名前を指定する。
02 データ名2 PIC 9(09) USAGE COMP.
出力する文字列の長さを4バイトの2進項目で指定する。0〜1,024バイトまでの長さを指定できる。
02 データ名3 PIC 9(09) USAGE COMP.
入力する文字列の長さを4バイトの2進項目で指定する。0〜1,024バイトまでの長さを指定できる。
-
引数2には,出力する文字列を格納する領域を英数字項目で指定します。
-
引数3には,入力した文字列を格納する領域を英数字項目で指定します。
-
- 戻り値
-
1:正常終了した場合(キャンセルボタンが押された)
0:正常終了した場合(OKボタンが押された)
-1:パラメタエラーが発生した場合
-2:その他のエラーが発生した場合
- 規則
-
- 出力文字列に関する注意
-
-
引数2に指定された文字列中に,システムが表示できないコードがあった場合の結果は保証しません。
-
引数1のデータ名2に指定した文字列長より,引数2に指定した出力領域長が長い場合,引数1のデータ名2に指定した文字列長で出力します。また,指定した文字列長が多バイト文字の途中で終わる場合,この文字は出力されません。
-
引数1のデータ名2に指定した文字列長より,引数2に指定した出力領域長が短い場合の結果は保証しません。
-
引数2に指定された文字列の途中にNULL(X'00')がある場合,NULL以降の文字列は出力されません。
-
- 入力文字列に関する注意
-
-
引数1のデータ名3に指定した文字列長より,引数3に指定した入力領域長が長い場合,引数1のデータ名3に指定した文字列長で入力できます。
-
引数1のデータ名3に指定した文字列長より,引数3に指定した入力領域長が短い場合の結果は保証しません。
-
ダイアログボックスから入力された文字列長が引数1のデータ名3に指定した文字列長より短い場合,残りの入力領域は1バイトの空白文字で埋められます。
-
- 使用例
-
ダイアログボックスに「入力してください」と表示したあと,データをダイアログボックスから入力する例を次に示します。
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. : DATA DIVISION. WORKING-STORAGE SECTION. 01 ARG01. 02 OUT-LEN PIC 9(09) USAGE COMP. 02 IN-LEN PIC 9(09) USAGE COMP. 01 OUT-STR PIC X(16). 01 IN-AREA PIC X(30). : PROCEDURE DIVISION. *** 引数情報をセット *** MOVE 16 TO OUT-LEN. MOVE '入力してください' TO OUT-STR. MOVE 30 TO IN-LEN. *** サービスルーチンを呼び出す *** CALL 'CBLINPUTDLG' USING ARG01 OUT-STR IN-AREA. IF RETURN-CODE < 0 THEN CBLINPUTDLGエラー処理 END-IF. :
作成したダイアログボックスの出力例を次に示します。