新しく作成したフォームに、以下の手続きを記述します。
使用するファイルの宣言(FILE-CONTROL)
レコードの定義(FILE)
作業用データの定義(WORKING-STORAGE)
フォームが開かれたときの手続き(AddForm-Opened)
OKボタンをクリックしたときの手続き(BT-OK-Click)
キャンセルボタンをクリックしたときの手続き(BT-CANCEL-Click)
FILE-CONTROLおよびFILEの手続きは、「8.3 複数ウィンドウをもつアプリケーションを作成する」で記述した内容と同じです。
01 商品-キー PIC 9(5) BINARY GLOBAL. 01 FS PIC XX GLOBAL. 01 G-CODE PIC S9(8) COMP-5 GLOBAL.
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 W-LABEL. 02 FILLER PIC N(5) VALUE NC"商品コード". 02 FILLER PIC X(1) VALUE SPACE. 02 W-CODE PIC 9(5). 02 FILLER PIC X(1) VALUE SPACE. 02 FILLER PIC N(5) VALUE NC"に対応する". 02 FILLER PIC X(1) VALUE SPACE. 02 W-TARGET PIC N(3). 02 FILLER PIC X(1) VALUE SPACE. 02 FILLER PIC N(9) VALUE NC"を入力してください". PROCEDURE DIVISION. * 現在のレコード数を求め、次の商品コードを決定します。 OPEN INPUT 商品ファイル MOVE 1 TO W-CODE PERFORM WITH NO LIMIT MOVE W-CODE TO 商品-キー READ 商品ファイル INVALID KEY PERFORM 最終レコード到達 END-READ ADD 1 TO W-CODE END-PERFORM . 最終レコード到達. CLOSE 商品ファイル * ページに表示する文字列を設定します。 MOVE G-CODE TO W-CODE MOVE NC"商品名" TO W-TARGET MOVE W-LABEL TO "Caption" OF ST-NAME MOVE NC"単価" TO W-TARGET MOVE W-LABEL TO "Caption" OF ST-PRICE * 最初の入力箇所にフォーカスを設定します。 INVOKE TX-NAME "SetFocus" EXIT PROGRAM.
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. * 入力内容をチェックします。 IF "Text" OF TX-NAME = SPACE THEN INVOKE POW-SELF "DisplayMessage" USING "商品名を入力してください。" EXIT PROGRAM END-IF IF "Text" OF TX-PRICE = 0 THEN INVOKE POW-SELF "DisplayMessage" USING "単価を入力してください。" EXIT PROGRAM END-IF * 商品ファイルをオープンします。 OPEN I-O 商品ファイル * 入力された商品の情報を商品ファイルに追加します。 MOVE G-CODE TO 商品-キー MOVE "Text" OF TX-NAME TO 商品-名 MOVE "Text" OF TX-PRICE TO 商品-単価 WRITE 商品レコード * 商品ファイルをクローズします。 CLOSE 商品ファイル * ダイアログボックスを閉じます。 INVOKE POW-SELF "CloseForm"
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. * 何もしないでダイアログボックスを閉じます。 INVOKE POW-SELF "CloseForm"