7.76.2 POP_UPについてのコメント/警告
POP_UPウィンドウは、従来のDDS (Data Description Specifications: データ記述仕様)に従って定義され、表示されます。「ユーザー定義のデータ・ストリーム」は使用されないため、上位互換性に関する問題は発生しません。また、今後発生することもありません。
POP_UPコマンドは、「モード依存」コマンドです。「モード依存」コマンドの処理の詳細については、「RDML画面モードとモード依存コマンド」を参照してください。
ポップアップ・ウィンドウが表示されると、すでに画面に表示されていたすべてのフィールドは保護され、ユーザーが変更することはできなくなります。
POP_UPウィンドウによって有効になったファンクション・キーのみが有効になります。ポップアップ・ウィンドウの背面にあるパネルで有効になっていたファンクション・キーは無効になり、使用できなくなります。
ポップアップ・ウィンドウは「小型」画面パネルで、そのレイアウトは全画面パネルとまったく同じです。次の例を考えてみましょう。
------------------ l : 行番号と列番号で指定された
| ウィンドウ位置(AT_LOC)
|
| BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
--->l iiiiiii ttttttttttttttttttttttttt | B
B | B
B | B
B 長さ B
B | B
B<----------------------- 幅 -----------|-------->B
B | B
B | B
B | B
B MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM | MMMMMMM B
B FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | FFFFFFF B
B FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | FFFFFFF B
B | B
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
* 表記の説明: "iiiiiiii"はパネル識別子
"ttt...tt"はパネル・タイトル
"MMM...MM"はメッセージ行
"FFFFFFFF"は2行のファンクション・キー行
"BB....BB"はウィンドウ境界の充填文字
パネル識別子とタイトル行は省略可能です。メッセージ行およびファンクション・キー行は、区画に対して定義されている場合は表示順序が異なる場合があります。非SAA/CUAファンクションでは、表示されるファンクション・キー行は1行のみです。
ウィンドウ位置は、行番号と列番号で指定し、ウィンドウの左上角(境界内)の位置を指定するために使用します。ウィンドウ境界も表示する必要があるため、行の最小値は2、最大値は23です。同様に、列の最小値は3、最大値は77です。
SAA/CUAアプリケーションでは、ポップアップ・ウィンドウの境界は、パネル要素カテゴリーPBWB(通常は青色反転表示)に関するパーティション・レベルの定義に従って表示されます。非SAA/CUAアプリケーションの場合は、緑色反転表示が使用されます。
ポップアップ・ウィンドウの幅と長さは文字位置で指定し、これによって境界内(ただし、境界は含まない)の寸法を指定します。
ウィンドウ内でパネル識別子、メッセージ、およびファンクション・キーに使用される行は予約済みのため、これらの行にフィールドを配置することはできません。
ポップアップ・ウィンドウ内の最初の2列と最後の2列は予約済みのため、これらの列にかかる位置にフィールドを配置することはできません。
フィールドをポップアップ・ウィンドウに配置するときは、フィールド(ラベルまたは記述を含む)とすべての先頭および末尾属性バイトがウィンドウの1行にすべて収まらなければなりません。1つのフィールドをポップアップ・ウィンドウの複数の行に渡って表示することはできません。
ポップアップ・ウィンドウは、DISPLAYコマンドと同様に、入力または出力操作に使用できます。また、POP_UPコマンドがDISPLAYコマンドと同様に「モード依存」コマンドであることに注意してください。
ポップアップ・ウィンドウにブラウズ・リストを組み込み、入力または出力操作に使用することができます。
ウィンドウ内でのフィールド位置を指定するときは、その位置がウィンドウ位置に対する相対位置であることに注意してください。例えば、以下のようにPOP_UPコマンドを指定したとします。
POP_UP FIELDS((#DATE *R2 *C3))
この場合、DATEは、ポップアップ・ウィンドウ内の2行目の3列目に配置されます。
CURSOR_LOCパラメータで、カーソルを配置する特定の行と列を指定するときは、これらの位置が絶対位置であることに注意してください。値を指定するときは、ウィンドウではなく、画面パネル全体に対する位置を指定します。すなわち、ポップアップ・ウィンドウ境界外の値を指定することも可能です。
Enterキーまたはその他のAIDキーが押されたときにカーソルが置かれていたフィールドの名前をファンクションに返すには、ファンクション内で#CURLOC$FNというフィールドを参照してください。
#CURLOC$FN (alpha, 10)には、フィールドの名前が保持されます。
以下の表に、DESIGNおよびIDENTIFYパラメータのあらゆる組み合わせと、関連付けられたDOWN_SEPまたはACROSS_SEPパラメータでデフォルト値*DESIGNを使用した場合に実際に使用される値を示します。
指定する値:DESIGN |
指定する値:IDENTIFY |
*DESIGNを指定:DOWN_SEP |
*DESIGNを指定:ACROSS_SEP |
---|---|---|---|
*DOWN |
*COLHDG |
5 |
1 |
*DOWN |
*LABEL |
1 |
1 |
*DOWN |
*DESC |
1 |
1 |
*DOWN |
*NOID |
1 |
1 |
*ACROSS |
*COLHDG |
5 |
1 |
*ACROSS |
*LABEL |
1 |
1 |
*ACROSS |
*DESC |
1 |
1 |
*ACROSS |
*NOID |
1 |
1 |
場合によっては、FIELDSパラメータで指定したすべてのフィールドが1画面に収まらないこともあります。この場合は、2番目のウィンドウ、3番目のウィンドウ、4番目のウィンドウというように、必要に応じてウィンドウが自動的に設計されます。
RDMLプログラムでは、FIELDSパラメータで指定したフィールドは1つの「長い」ウィンドウのように扱うことができます。LANSAは、すべてのウィンドウの処理が完了するまで、自動的にウィンドウを連続的に処理します。すべてのウィンドウの処理が終了すると、次のRDMLコマンドが実行されます。
そのため、POP_UPコマンドを使用すると、 実際には、2番目のウィンドウ、3番目のウィンドウというように次々にウィンドウを表示するよう要求していることになります。
これは、自動設計処理の機能です。RDMLプログラムを独自にコーディングする場合は、POP_UPコマンドを、それぞれのウィンドウ形式が1つのみの複数のPOP_UPコマンドに「分割」するか、ウィンドウのサイズを大きくすることをお勧めします。
POP_UPからメッセージを表示する場合、二次レベルのテキスト・メッセージに含まれる形式制御文字には何の効果もないことに注意してください。