画面・帳票サポートシステム XMAP3 プログラミングガイド


16.3.8 フォーカス・カーソル位置

フォーカス・カーソル位置の論理マップ生成規則について説明します。

〈この項の構成〉

(1) フォーカス・カーソル項目の定義

(a) フォーカス項目の定義

  • 出力フォーカス項目の定義

    • 出力フォーカス項目:マップ名-OUTFOCUS-O

    • 長さ:2

データ名は,ドローセットアップの「カーソルとフォーカス」ダイアログで変更できます。

  • 入力フォーカス項目の定義

    • 入力フォーカス項目:マップ名-INFOCUS-I

    • 長さ:2

データ名は,ドローセットアップの「カーソルとフォーカス」ダイアログで変更できます。

(b) カーソル項目の定義

フィールドボックスを複数定義した場合,それぞれに割り当てるために,カーソル項目を複数定義できます。ここでは,2個目以降の定義について示します。

1個目の定義については,「16.2.2(1) 出力カーソル項目の定義」,「16.2.3(1) 入力カーソル項目の定義」を参照してください。

  • 行列(2進)カーソルの標準値

    • 出力カーソル項目データ名:(行)マップ名-OUTCURSnL,(列)マップ名-OUTCURSnC

    • 入力カーソル項目データ名:(行)マップ名-INCURSnN,(列)マップ名-INCURSnM

    • 長さ:4

データ名は,ドローセットアップの「カーソルとフォーカス」ダイアログで変更できます。

  • 行列(10進)カーソルの標準値

    • 出力カーソル項目データ名:(行)マップ名-OUTCURSnY,(列)マップ名-OUTCURSnX

    • 入力カーソル項目データ名:(行)マップ名-INCURSnY,(列)マップ名-INCURSnX

    • 長さ:8

データ名は,ドローセットアップの「カーソルとフォーカス」ダイアログで変更できます。

  • 論理カーソルの標準値

    • 出力カーソル項目データ名:マップ名-OUTCURSnO

    • 入力カーソル項目データ名:マップ名-INCURSnI

    • 長さ:2

データ名は,ドローセットアップの「カーソルとフォーカス」ダイアログで変更できます。

(2) 出力フォーカス・カーソル位置の論理マップ生成規則とマッピング規則

(a) フォーカスとカーソルを同時に制御する場合

論理マップにはカーソル制御項目だけが生成されます。フォーカス制御項目は生成されません。

  • 論理マップ生成例

    16.2.2(2) 論理マップ生成規則」を参照してください。

  • マッピング規則

    • APがカーソル項目データ名の領域に代入した内容と結果

    《フィールドボックスの定義がある場合》

    APがカーソル項目データ名の領域に代入した内容

    結果

    (00)16クリア,またはマップ生成機能が生成するフォーカス・カーソル定数以外の値

    《初期フォーカス,初期カーソルの指定がある》
    • フォーカスは,初期フォーカスを指定したオブジェクトに位置づく。

    • カーソルは,初期カーソルを指定したフィールドの先頭に位置づく。

    《初期フォーカスの指定があり,初期カーソルの指定がない》
    • フォーカスは,初期フォーカスを指定したオブジェクトに位置づく。

    • カーソルは,フィールドボックス内の先頭の行列位置にある入力できるフィールドに位置づく。カーソルはフィールドの先頭に位置づく。

    《初期フォーカスの指定がなく,初期カーソルの指定がある》
    • フォーカスは,ウィンドウ上の先頭の行列位置にあるオブジェクトに位置づく。

    • カーソルは,初期カーソルを指定したフィールドの先頭に位置づく。

    《初期フォーカス,初期カーソルの指定がない》
    • フォーカスは,ウィンドウ上の先頭の行列位置にあるオブジェクトに位置づく。

    • カーソルは,フィールドボックス内の先頭の行列位置にある入力できるフィールドの先頭に位置づく。

    マップ生成機能が生成するフィールドボックス内のフィールドのフォーカス・カーソル定数

    フォーカスはフィールドボックスに位置づく。カーソルはフォーカス・カーソル定数に対応したフィールドの先頭に位置づく。

    フィールドボックスを複数定義している場合,フォーカスの位置づかないフィールドボックスのカーソルは,初期カーソルを指定したフィールドの先頭に位置づく。初期カーソルの指定がない場合,フィールドボックス内の先頭の行列位置にある入力できるフィールドの先頭に位置づく。

    マップ生成機能が生成するフィールドボックス外のオブジェクトのフォーカス・カーソル定数

    フォーカスはフォーカス・カーソル定数に対応したオブジェクトに位置づく。カーソルは初期カーソルの指定に従う。

    フィールドボックスを複数定義している場合,フォーカスの位置づかないフィールドボックスのカーソルは,初期カーソルの指定に従う。

    《初期カーソルの指定がある》

    初期カーソルを指定したフィールドの先頭にカーソルが位置づく。

    《初期カーソルの指定がない》

    フィールドボックス内の先頭の行列位置にある入力できるフィールドの先頭にカーソルが位置づく。

    《フィールドボックスの定義がない場合》

    APがカーソル項目データ名の領域に代入した内容

    結果

    (00)16クリア,または

    マップ生成機能が生成するフォーカス・カーソル定数以外の値

    《初期フォーカスの指定がある》

    初期フォーカスを指定したオブジェクトにフォーカスが位置づく。

    《初期フォーカスの指定がない》

    ウィンドウ上の先頭の行列位置にあるオブジェクトにフォーカスが位置づく。

    マップ生成機能が生成するフォーカス・カーソル定数

    フォーカス・カーソル定数に対応したオブジェクトにフォーカスが位置づく。

(b) フォーカスとカーソルを別々に制御する場合

論理マップには,フォーカス制御項目とカーソル制御項目が生成されます。フォーカス制御の論理マップ生成例とマッピング規則について説明します。カーソル制御のマッピング規則については「16.2.2(3) マッピング規則」を参照してください。フォーカス定数については「16.5.3 フォーカス定数の論理マップ生成規則」を参照してください。

・論理マップ生成規則

 COBOL
・行列(2進)カーソルを指定した場合

Windowsリトルエンディアン用

 {02|03} マップ名-OUTCURSL      PIC S9(4) COMP-5.
 {02|03} マップ名-OUTCURSC      PIC S9(4) COMP-5.
 {02|03} マップ名-OUTCURSnL     PIC S9(4) COMP-5.        ……※
 {02|03} マップ名-OUTCURSnC     PIC S9(4) COMP-5.        ……※
 {02|03} マップ名-OUTFOCUS-O    PIC X(2).

Windowsビッグエンディアン用,UNIX用

 {02|03} マップ名-OUTCURSL      PIC S9(4) COMP.
 {02|03} マップ名-OUTCURSC      PIC S9(4) COMP.
 {02|03} マップ名-OUTCURSnL     PIC S9(4) COMP.        ……※
 {02|03} マップ名-OUTCURSnC     PIC S9(4) COMP.        ……※
 {02|03} マップ名-OUTFOCUS-O    PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

・行列(10進)カーソルを指定した場合
{02|03} マップ名-OUTCURSY      PIC 9(4).
{02|03} マップ名-OUTCURSX      PIC 9(4).
{02|03} マップ名-OUTCURSnY     PIC 9(4).            ……※
{02|03} マップ名-OUTCURSnX     PIC 9(4).            ……※
{02|03} マップ名-OUTFOCUS-O    PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

・論理カーソルを指定した場合
{02|03} マップ名-OUTCURS-LOCO  PIC X(2).
{02|03} マップ名-OUTCURSnO     PIC X(2).            ……※
{02|03} マップ名-OUTFOCUS-O    PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

 C言語
・行列(2進)カーソルを指定した場合
unsigned char マップ名_OUTCURSL[2];
unsigned char マップ名_OUTCURSC[2];
unsigned char マップ名_OUTCURSnL[2];            ……※
unsigned char マップ名_OUTCURSnC[2];            ……※
unsigned char マップ名_OUTFOCUS_0[2];
 注※

フィールドボックスを複数定義している場合に展開されます。

・行列(10進)カーソルを指定した場合

行列(2進)カーソルに変換されます。

・論理カーソルを指定した場合
unsigned char マップ名_OUTCURS_LOCO[2];
unsigned char マップ名_OUTCURSnO[2];            ……※
unsigned char マップ名_OUTFOCUS_O[2];
 注※

フィールドボックスを複数定義している場合に展開されます。

・マッピング規則
  • APがフォーカス項目データ名の領域に代入した内容と結果

    APがフォーカス項目データ名の領域に代入した内容

    結果

    (00)16クリア,またはマップ生成機能が生成するフォーカス定数以外の値

    《初期フォーカスの指定がある》

    初期フォーカスを指定したオブジェクトにフォーカスが位置づく。

    《初期フォーカスの指定がない》

    ウィンドウ上の先頭の行列位置にあるオブジェクトにフォーカスが位置づく。

    マップ生成機能が生成するフォーカス定数

    フォーカス定数に対応したオブジェクトにフォーカスが位置づく。

(3) 入力フォーカス・カーソル位置の論理マップ生成規則とマッピング規則

(a) フォーカスとカーソルを同時に制御する場合

論理マップにはカーソル制御項目だけが生成されます。フォーカス制御項目は生成されません。フィールドボックスを定義した画面で,複数のプッシュボタンボックスのフォーカス位置を識別して制御したい場合には,フォーカスとカーソルを別々に制御してください。

  • 論理マップ生成規則

    16.2.3(2)(c) 論理カーソルを指定した場合」を参照してください。

  • マッピング規則

    • APがカーソル項目データ名の領域に代入される内容

    《フィールドボックスの定義がある場合》

    入力操作

    結果

    画面送信時のフォーカス位置がプッシュボタンに位置づいている

    (ほかのオブジェクトにフォーカスが位置づいている場合で,マウスによるプッシュボタン選択は該当しない)

    通知コードデータ名Tに対応するフォーカス・カーソル定数を代入する。

    画面送信時のフォーカス位置がフィールドボックスに位置づいていて,カーソル位置が入力・入出力フィールド内に収まっていない

    (00)16を代入する。

    画面送信時のフォーカス位置がフィールドボックスに位置づいていて,カーソル位置が入力・入出力フィールド内に収まっている

    該当するフィールドに対応するカーソル定数を代入する。

    画面送信時のフォーカス位置がプッシュボタン,フィールドボックス以外のオブジェクトに位置づいている

    該当するオブジェクトに対応するフォーカス・カーソル定数を代入する。

    GUI画面で入力単位が「フィールド単位」または「イベント単位」の場合,キー操作をしたオブジェクトのフォーカス定数,またはカーソル定数を代入します。

    《フィールドボックスの定義がない場合》

    入力操作

    結果

    画面送信時のフォーカス位置がプッシュボタンに位置づいている

    (ほかのオブジェクトにフォーカスが位置づいている場合で,マウスによるプッシュボタン選択は該当しない)

    《プッシュボタンにボックス名称の指定がある》

    ボックス名-Tに対応するフォーカス・カーソル定数を代入する。

    《プッシュボタンにボックス名称の指定がない》

    通知コードデータ名Tに対応するフォーカス・カーソル定数を代入する。

    画面送信時のフォーカス位置がプッシュボタン以外のオブジェクトに位置づいている

    該当するオブジェクトに対応するフォーカス・カーソル定数を代入する。

    入力単位が「フィールド単位」または「イベント単位」の場合,キー操作をしたオブジェクトの定数を代入します。

(b) フォーカスとカーソルを別々に制御する場合

論理マップにはフォーカス制御項目とカーソル制御項目が生成されます。フォーカス制御の論理マップ生成例とマッピング規則について説明します。カーソル制御のマッピング規則については「16.2.3(3) マッピング規則」を参照してください。フォーカス定数については「16.5.3 フォーカス定数の論理マップ生成規則」を参照してください。

・論理マップ生成規則

 COBOL
・行列(2進)カーソルを指定した場合

Windowsリトルエンディアン用

 {02|03} マップ名-INCURSN      PIC S9(4) COMP-5.
 {02|03} マップ名-INCURSM      PIC S9(4) COMP-5.
 {02|03} マップ名-INCURSnN     PIC S9(4) COMP-5.        ……※
 {02|03} マップ名-INCURSnM     PIC S9(4) COMP-5.        ……※
 {02|03} マップ名-INFOCUS-I    PIC X(2).

Windowsビッグエンディアン用,UNIX用

 {02|03} マップ名-INCURSN      PIC S9(4) COMP.
 {02|03} マップ名-INCURSM      PIC S9(4) COMP.
 {02|03} マップ名-INCURSnN     PIC S9(4) COMP.        ……※
 {02|03} マップ名-INCURSnM     PIC S9(4) COMP.        ……※
 {02|03} マップ名-INFOCUS-I    PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

・行列(10進)カーソルを指定した場合
{02|03} マップ名-INCURSY      PIC 9(4).
{02|03} マップ名-INCURSX      PIC 9(4).
{02|03} マップ名-INCURSnY     PIC 9(4).            ……※
{02|03} マップ名-INCURSnX     PIC 9(4).            ……※
{02|03} マップ名-INFOCUS-I    PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

・論理カーソルを指定した場合
{02|03} マップ名-INCURS-LOCI    PIC X(2).
{02|03} マップ名-INCURSnI       PIC X(2).            ……※
{02|03} マップ名-INFOCUS-I      PIC X(2).
 注※

フィールドボックスを複数定義している場合に展開されます。

 C言語
・行列(2進)カーソルを指定した場合
unsigned char マップ名_INCURSN[2];
unsigned char マップ名_INCURSM[2];
unsigned char マップ名_INCURSnN[2];            ……※
unsigned char マップ名_INCURSnM[2];            ……※
unsigned char マップ名_INFOCUS_I[2];
 注※

フィールドボックスを複数定義している場合に展開されます。

・行列(10進)カーソルを指定した場合

行列(2進)カーソルに変換されます。

・論理カーソルを指定した場合
unsigned char マップ名_INCURS_LOCI[2];
unsigned char マップ名_INCURSnI[2];            ……※
unsigned char マップ名_INFOCUS_I[2];
 注※

フィールドボックスを複数定義している場合に展開されます。

・マッピング規則
  • APがフォーカス項目データ名の領域に代入した内容と結果

    入力操作

    結果

    画面送信時のフォーカス位置がプッシュボタンに位置づいている

    (ほかのオブジェクトにフォーカスが位置づいている場合で,マウスによるプッシュボタン選択は該当しない)

    《プッシュボタンにボックス名称の指定がある》

    ボックス名-Tに対応するフォーカス定数を代入する。

    《プッシュボタンにボックス名称の指定がない》

    通知コードデータ名Tに対応するフォーカス定数を代入する。

    画面送信時のフォーカス位置がプッシュボタン以外のオブジェクトに位置づいている

    該当するオブジェクトに対応するフォーカス定数を代入する。

    画面送信時のフォーカス位置がフィールドボックスに位置づいている

    フィールドボックス内の先頭の行列位置にあるフィールドに対応するフォーカス定数を代入する。

    入力単位が「フィールド単位」または「イベント単位」の場合,キー操作をしたオブジェクトの定数を代入します。