COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

32.5.3 JCPOPUP

JCPOPUPサービスルーチンは,表形式のデータ項目を主画面とは別の画面に表示し,画面中でブロックカーソルを移動して選んだブロック番号をインタフェース領域に格納するものです。これを利用すると,画面上での各種のコードの入力などが目的の項目をマウスやキーで選ぶだけでできるようになります。

なお,ここで表示される画面をポップアップブロックカーソル画面といいます。

形式
CALL 'JCPOPUP' USING 引数1 引数2

引数
  • 引数1には,次に示すインタフェース領域の名前を指定します。

    表32-4 JCPOPUPサービスルーチンのインタフェース領域

    記述形式 内容
    01 データ名01.
    CALL文のUSINGで指定するインタフェース領域の名前を指定する。
      02 データ名02 PIC 9(02).
    JCPOPUPサービスルーチンが次の戻り値を設定する。
    00:正常終了した。
    10:異常終了した。
      02 データ名03 PIC 9(04).
    JCPOPUPサービスルーチンがブロックカーソルで選択したブロック番号を設定する(先頭を1とし,固定部分は含まない)。
      02 データ名04 PIC 9(02).
    データを表示する画面上の行の番号を1〜99で指定する。1
      02 データ名05 PIC 9(02).
    データを表示する画面上のカラムの番号を1〜99で指定する。1
      02 データ名06 PIC 9(02).
    画面の行数を1〜24で指定する。
      02 データ名07 PIC 9(02).
    画面の列数を1〜80で指定する。
      02 データ名08 PIC 9(02).
    画面の固定領域行数を1〜24で指定する。
      02 データ名09 PIC 9(02).
    画面の1ブロック(1エントリ)のサイズを指定する。
      02 データ名10 PIC X(02).
    固定領域の色を指定する。
    G△:緑色 W△:白色 R△:赤色 B△:青色
    P△:紫色 Y△:黄色 S△:空色
      02 データ名11 PIC X(02).
    ブロックカーソルの色をデータ名10と同じ形式で指定する。
      02 データ名12 PIC X(02).
    可変領域の色をデータ名10と同じ形式で指定する。
      02 データ名13 PIC X(02).
    可変領域の初期表示位置を指定する。
    T△:先頭表示
    B△:最終表示
      02 データ名14 PIC 9(04).
    画面の固定領域のサイズを指定する。
      02 データ名15 PIC 9(02).
    可変領域のデータ項目(1エントリ)のサイズを指定する。
      02 データ名16 PIC 9(04).
    出力データのサイズ(固定領域+可変領域)を指定する。
      02 データ名17 PIC 9(02).
    JCPOPUPサービスルーチンが終了キーコードを設定する。2
      02 データ名18 PIC X(01).
    画面に枠けい線を出力するかどうかを指定する。
    Y:出力する。
    N:出力しない。
      02 FILLER     PIC X(09).
    予備。値はX'00'でなければならない。ただし,このシステムではこの領域は使用しない。
(凡例)
△:半角空白を示す
注※1
モニタ画面の左上からの位置となります。また,1行,1列の幅は,表示する文字のフォントサイズに依存します。ただし,指定した値が不正な場合,および指定位置がモニタ画面外になる場合は,ポップアップウィンドウの出力位置はWindowsのシステムに依存します。
注※2
終了キーと終了キーコードとの対応を次に示します。
Enterキー:89
F1キー:00 F9キー:08 F17キー:53
F2キー:01 F10キー:09 F18キー:54
F3キー:02 F11キー:18 F19キー:55
F4キー:03 F12キー:19 F20キー:56
F5キー:04 F13キー:49 F21キー:57
F6キー:05 F14キー:50 F22キー:58
F7キー:06 F15キー:51 F23キー:59
F8キー:07 F16キー:52 F24キー:60
なお,F10キーは通常システムキーとして割り当てられています。これをCOBOLプログラム中で使用するためには,実行支援を使って,ユーザキーとして割り当てる必要があります。実行支援を使った画面環境の設定については,マニュアル「COBOL2002 操作ガイド」を参照してください。
  • 引数2には,1次元の繰り返し構造(表形式)を持つレベル番号01のデータ項目の名前を指定します。
(例)
 
01 データ名20.
  02 FILLER  PIC  X(16)  VALUE  LOW-VALUE.
  02 表示データ項目(固定領域+可変領域)を
     表形式で指定する。 … 1.
  02 FILLER  PIC  X(nn)  VALUE  LOW-VALUE. … 2.
 
  1. 表示データ項目のデータは文字形式でなければなりません。文字形式でない場合,出力結果は保証しません。
  2. nnには次のサイズを指定します。
    ・枠けい線機能を使用しない場合:32バイト
    ・枠けい線機能を使用する場合:(可変領域のサイズ/可変領域のデータ項目のサイズ)×9+50バイト
    ただし,この領域はこのシステムでは使用しません。

戻り値
なし。

使用例
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE1.
           :
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ICHIRAN-GAMEN.
         02 HUKKI-CODE      PIC 9(2).
         02 BLOCK-NUMBER    PIC 9(4).  …1.
         02 Y-LOCATION      PIC 9(2) VALUE 10.
         02 X-LOCATION      PIC 9(2) VALUE 10.
         02 WINDOW-LINE     PIC 9(2) VALUE  5. …2.
         02 WINDOW-COLUMN   PIC 9(2) VALUE 20. …3.
         02 KOTEI-LINE      PIC 9(2) VALUE  2. …4.
         02 BLOCK-SIZE      PIC 9(2) VALUE 10. …5.
         02 KOTEI-COLOR     PIC X(2) VALUE 'G '.
         02 CURSOR-COLOR    PIC X(2) VALUE 'R '.
         02 KAHEN-COLOR     PIC X(2) VALUE 'B '.
         02 HYOUJI-ICHI     PIC X(2) VALUE 'T '. …6.
         02 KOTEI-SIZE      PIC 9(4) VALUE 60. …7.
         02 ENTRY-SIZE      PIC 9(2) VALUE 15. …8.
         02 DATA-SIZE       PIC 9(4) VALUE 210. …9.
         02 END-KEY         PIC 9(2). …10.
         02 WAKU-KEISEN     PIC X(1) VALUE 'Y'. …11.
         02 FILLER          PIC X(9) VALUE LOW-VALUE.
       01 ICHIRAN-DATA.
         02 FILLER          PIC X(16) VALUE LOW-VALUE.
         02 HD1             PIC X(15) VALUE 'コード一覧'.
         02 HD2             PIC X(15) VALUE SPACE.
         02 HD2             PIC X(15) VALUE SPACE.
         02 HD2             PIC X(15) VALUE SPACE.
         02 ATEM            PIC X(15) OCCURS 10 TIMES.
         02 FILLER          PIC X(140) VALUE LOW-VALUE.
           :
       PROCEDURE DIVISION.
           :
           MOVE '1:AAA' TO ATEM(1).
           MOVE '2:BBB' TO ATEM(2).
           :
           MOVE '10:JJJ' TO ATEM(10).
           CALL 'JCPOPUP' USING ICHIRAN-GAMEN ICHIRAN-DATA.
           :
上記の指定によって表示されるポップアップブロックカーソル画面を次に示します。図中の数字は,プログラム中のコメントに記載している数字の個所と対応しています。
[図データ]
固定領域には,表示データ項目の先頭から固定領域のサイズ分(7.)の文字が,固定領域に表示できる分(3.×4.)だけ表示されます。
可変領域には,表示データ項目のうち,可変領域のサイズ(表示データ項目のサイズ(9.)−固定領域のサイズ(7.))分の文字が,可変領域のデータ項目のサイズ(8.)ごとに区切って各ブロックに表示されます。ただし,表示されるのは各項目とも先頭から1ブロック分のサイズ(5.)までで,はみ出す部分は表示されません。なお,上図で表示されていない"7:GGG"以降の項目はスクロールによって表示できます。
上記の画面で[↑]キー,[↓]キー,[←]キー,[→]キー,またはマウスでブロックカーソルを移動すると,ブロックを選べます。そのあと,終了キーを押すかマウスでダブルクリックすると,画面が閉じ,選んだブロックの番号がBLOCK-NUMBERの領域(1.)に格納されます。
また,このとき押された終了キーに対応する終了キーコードが10.の領域に格納されます。ダブルクリックで終了した場合の終了キーコードは89です。

CBLJCPOPENDKEY
JCPOPUPサービスルーチンの終了キーを拡張したい場合,環境変数CBLJCPOPENDKEYにYESを指定します。拡張される終了キーと終了キーコードの対応を次に示します。なお,これらのキーはメニューに反映されず,キー操作だけ有効となります。
[Alt]+[F1]キー:10 [PageDown]キー:24
[Alt]+[F2]キー:11 [PageUp]キー:25
[Alt]+[F3]キー:12 [Alt]+[↑]キー:26
[Alt]+[F4]キー:13 [Alt]+[↓]キー:27
[Alt]+[F5]キー:14 [Alt]+[←]キー:28
[Alt]+[F6]キー:15 [Alt]+[→]キー:29
[Alt]+[F7]キー:16 [Alt]+[F8]キー:17
この環境変数の指定する値を指定しなかった場合や,YES以外を指定した場合,終了キーは拡張されません。