2026/05/03

COBOL: SCREEN SECTION

In COBOL, the SCREEN SECTION is used to define the layout of terminal-based user interfaces. It allows you to specify exact screen positions (line and column) and visual attributes like color or highlighting. GnuCOBOL 使用 NCurses 函式庫實作 SCREEN SECTION,使用者可以透過使用 SCREEN SECTION 撰寫簡單的 TUI 程式。

下面是一個使用的例子。

       IDENTIFICATION DIVISION.
       PROGRAM-ID. EXAMPLE.

       ENVIRONMENT DIVISION.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 LOGING-DATA.
           05 USER-ID   PIC X(10).
           05 USER-PASS PIC X(10).

       SCREEN SECTION.
       01 CLEAR-SCREEN.
           05 BLANK SCREEN BACKGROUND-COLOR 0 FOREGROUND-COLOR 7.

       01  LOGIN-SCREEN.
           05  LINE 2  COLUMN 10 VALUE 'User ID:'.
           05  LINE 2  COLUMN 20 PIC X(10) TO USER-ID.
           05  LINE 3  COLUMN 10 VALUE 'Password:'.
           05  LINE 3  COLUMN 20 PIC X(10) TO USER-PASS.

       PROCEDURE DIVISION.
       MAIN-PARA.
           DISPLAY CLEAR-SCREEN
           DISPLAY LOGIN-SCREEN
           ACCEPT  LOGIN-SCREEN
           IF USER-ID = SPACES OR USER-PASS = SPACES
               DISPLAY 'Both fields required.'
               DISPLAY LOGIN-SCREEN
               ACCEPT  LOGIN-SCREEN WITH UPDATE
           ELSE
               DISPLAY "USER ID: " AT 0610
               DISPLAY USER-ID AT 0620
               DISPLAY "USER PASS: " AT 0710
               DISPLAY USER-PASS AT 0720
           END-IF.
           STOP RUN.        

在 SCREEN SECTION 中定義 SCREEN 的佈局,在 PROCEDURE DIVISION 使用 DISPLAY 顯示畫面, 以及使用 ACCEPT 取得使用者輸入。

如果 DISPLAY 要指定位置,可以使用 AT LINE AT COLUMN 或者是 AT POSITION NUMBER 的方式, 而 POSITION NUMBER 前二碼為 LINE 的位置,後二碼為 COLUMN 的位置。

參考資料

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。