ページの先頭行へ戻る
NetCOBOL V11.0 PowerCOBOL ユーザーズガイド
FUJITSU Software

8.8.4 新しいフォームの手続きを記述する

新しく作成したフォームに、以下の手続きを記述します。

FILE-CONTROLおよびFILEの手続きは、「8.3 複数ウィンドウをもつアプリケーションを作成する」で記述した内容と同じです。

WORKING-STORAGE
    01  商品-キー   PIC 9(5) BINARY GLOBAL.
    01  FS           PIC XX   GLOBAL.
    01  G-CODE       PIC S9(8) COMP-5 GLOBAL.
AddForm-Opened
    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.
BT-OK-Click
    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"
BT-CANCEL-Click
    ENVIRONMENT     DIVISION.
    DATA            DIVISION.
    WORKING-STORAGE SECTION.
    PROCEDURE       DIVISION.
   *    何もしないでダイアログボックスを閉じます。
        INVOKE POW-SELF "CloseForm"