このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DEFINE WINDOW | INPUT | REINPUT | SET WINDOW
関連機能グループ:「対話型処理用の画面生成」
DEFINE WINDOW
ステートメントでは、ウィンドウのサイズ、位置、属性を指定します。
ウィンドウとは、端末画面上に表示される、プログラムによって構築された論理ページのセグメントのことです。 存在を認識できなくても、常にウィンドウは存在してます。別のウィンドウが指定されない限り、ウィンドウのサイズは端末画面の物理サイズと同じです。
DEFINE WINDOW
ステートメントはウィンドウをアクティブ化しません。ウィンドウをアクティブ化するには、SET WINDOW
ステートメントを使用するか、INPUT
ステートメントの WINDOW
節を使用します。
『プログラミングガイド』の「アプリケーションユーザーインターフェイスの設計」にある「画面設計」セクションの「ウィンドウ」も参照してください。
注意:
Natural ウィンドウ、つまり最新のウィンドウは常に 1 つです。 画面に前のウィンドウが表示されていても、アクティブではないので、Natural に無視されます。 現在のウィンドウにのみ入力できます。 入力する十分なスペースがない場合は、まずウィンドウサイズを調整する必要があります。
ウィンドウがアクティブな場合でも、Natural によってフルスクリーンの制御が行われます。 これは CICS や TSO のようなシングルセッションシステムに影響を与えません。Natural が Com-plete や Multi-pass のようなマルチプルセッションシステムの環境下で動作している場合、中断された Natural セッションが再開すると、完全な Natural 画面(つまり現在アクティブなウィンドウだけでなく、"その下" の Natural 画面も含む)が表示されます。同時に、フルスクリーンのフィールド属性はウィンドウによって部分的にオーバーレイされますが、ウィンドウによる影響はありません。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | N | P | I | 可 | 不可 | |||||||||||||
operand2 | C | S | N | P | I | 可 | 不可 | |||||||||||||
operand3 | C | S | N | P | I | 可 | 不可 | |||||||||||||
operand4 | C | S | N | P | I | 可 | 不可 | |||||||||||||
operand5 | C | S | A | U | 可 | 不可 |
window-name | window-name では、ウィンドウの名前を指定します。 名前の最大長は 32 文字です。 ウィンドウ名には、ユーザー定義変数と同じ命名規則が適用されます。『Natural の使用』ドキュメントの「ユーザー定義変数の命名規則」を参照してください。 |
---|---|
SIZE |
注意: 例:ウィンドウサイズを
|
SIZE AUTO |
ウィンドウのサイズは、Natural 実行時に自動で決定されます。 サイズは、ウィンドウに生成されるデータによって、次のように決定されます。
注意: |
SIZE QUARTER | ウィンドウサイズは物理画面の 1/4 になります。 |
SIZE operand1 * operand2 |
ウィンドウサイズは n 行 × n 桁になります。 operand1 では行数、operand2 では桁数を指定します。 2 つのオペランドのいずれにも小数桁を含めることはできません。
有効な最小ウィンドウサイズは、次のようになります。
有効な最大ウィンドウサイズは、物理画面のサイズです。 |
BASE | BASE 節では、物理画面上でのウィンドウ位置を決定します。 BASE 節を省略すると、デフォルトで BASE CURSOR が適用されます。
|
BASE CURSOR | ウィンドウの左上隅を、現在のカーソル位置に配置します。 カーソル位置とは、画面上の物理的なカーソルの位置です。 ウィンドウサイズが原因でウィンドウをカーソル位置に配置できない場合、Natural では、目的の位置にできるだけ近くなるようにウィンドウが自動的に配置されます。 |
BASE TOP/BOTTOM LEFT/RIGHT | それぞれ、物理画面上の左上隅、左下隅、右上隅、右下隅にウィンドウを配置します。 |
BASE operand3/operand4 |
物理画面の指定した行/桁に、ウィンドウの左上隅を配置します。 operand3 では行数、operand4 では桁数を指定します。 2 つのオペランドのいずれにも小数桁を含めることはできません。 ウィンドウサイズが原因で指定の位置にウィンドウを配置できない場合は、エラーメッセージが返されます。 |
REVERSED | REVERSED を指定すると、ウィンドウが反転表示されます。ただし、この指定は、使用画面でこの機能がサポートされている場合にのみ有効となります。サポートされていない場合、REVERSED は無視されます。
|
REVERSED CD= background-color |
ウィンドウを反転表示し、さらにウィンドウの背景を指定の色で表示します。ただし、この指定は、使用画面でこれらの機能がサポートされている場合にのみ有効となります。サポートされていない場合、各指定は無視されます。 有効なカラーコードについては、『パラメータリファレンス』でセッションパラメータ |
TITLE operand5 |
注意: |
CONTROL | CONTROL 節を使用して、PF キー行、メッセージ行、および統計行をウィンドウに表示するかフル物理画面に表示するかを指定します。
|
CONTROL WINDOW | CONTROL WINDOW を指定すると、ウィンドウ内に PF キー行、メッセージ行、および統計行が表示されます。 CONTROL 節を省略すると、デフォルトで CONTROL WINDOW が適用されます。
|
CONTROL SCREEN | CONTROL SCREEN を指定すると、ウィンドウの外側にある物理画面全体に PF キー行、メッセージ行、および統計行が表示されます。
|
FRAMED |
デフォルトでは、つまり 最上部と最下部のフレーム行はカーソルに依存します。適用可能なところで、適切な記号(<、-、+、>:下記の position-clause を参照)の上にカーソルを置いて Enter キーを押すと、ウィンドウ内でページを前後左右に移動できます。 記号が表示されない場合は、カーソルを枠線の最上部(前のページに戻る場合)または最下部(次のページに進む場合)に置いて Enter キーを押すことにより、ウィンドウ内でページを前後に移動することができます。 注意: |
FRAMED OFF | FRAMED OFF を指定すると、フレーム表示および各フレーム関連の指定(ウィンドウタイトルおよび位置情報)はオフになります。
|
FRAMED (CD= frame-color) |
この節では、ウィンドウに表示するフレームの色を指定します。ただし、使用画面がカラー端末でない場合、カラー指定は無視されます。 有効なカラーコードについては、『パラメータリファレンス』でセッションパラメータ 注意: |
position-clause | POSITION 節は、メインフレームのコンピュータだけで評価されます。他のすべてのプラットフォームでは無視されます。 詳細については、下記の「POSITION 節」を参照してください。
|
POSITION
節は、メインフレームのコンピュータだけで評価されます。他のすべてのプラットフォームでは無視されます。
POSITION |
SYMBOL
|
TOP |
[AUTO ] [SHORT ]
|
LEFT |
|||||||||
BOTTOM |
RIGHT |
||||||||||||
TEXT |
[MORE ]
|
LEFT |
|||||||||||
RIGHT |
|||||||||||||
OFF
|
POSITION
節を指定すると、論理ページ上でのウィンドウの位置に関する情報がウィンドウのフレーム内に表示されます。 これは、論理ページがウィンドウよりも大きい場合にのみ適用されます。そうでない場合は、POSITION
節は無視されます。 位置情報は、論理ページが拡張する方向(現在のウィンドウの上、下、左、右)を示します。
POSITION
節を省略すると、デフォルトで POSITION SYMBOL TOP RIGHT
が適用されます。
全体をウィンドウ内に収容できない入力フィールド(AD=A
または AD=M
)には、次の規則が適用されます。
フィールドの始まりがウィンドウ内にない入力フィールドは常に保護されます。
ウィンドウ内で始まりウィンドウ外で終わる入力フィールドは、フィールドに含まれる値がウィンドウ内に完全に表示できない場合にのみ保護されます。 この場合、フィールド長ではなく値の長さがウィンドウのサイズを超えているかどうかを決定します。 充填文字(プロファイルパラメータ FC
で指定)は、値の一部には数えられません。
保護された入力フィールドにアクセスする場合は、フィールドの先頭および値の終わりがウィンドウ内に入るようにウィンドウサイズを調整する必要があります。
DEFINE WINDOW
ステートメントは、論理条件ステートメントブロック内では指定できません。 条件によって異なるウィンドウを呼び出すには、条件内で別の SET WINDOW
ステートメント(または WINDOW
節を含む INPUT
ステートメント)を使用します。
** Example 'DWDEX1': DEFINE WINDOW ************************************************************************ DEFINE DATA LOCAL 01 #I (P3) END-DEFINE * SET KEY PF1='%W<<' PF2='%W>>' PF4='%W--' PF5='%W++' * DEFINE WINDOW WIND1 SIZE QUARTER BASE TOP RIGHT FRAMED ON POSITION SYMBOL AUTO * SET WINDOW 'WIND1' FOR #I = 1 TO 10 WRITE 25X #I 'THIS IS SOME LONG TEXT' #I END-FOR * END
+------------------------More: + >+ > r ! Page 1 ! All ....+....1....+....2....+....3.. ! ! 0010 ** Example 'DWDEX1': DEFINE WIND ! 1 THIS ! 0020 ******************************** ! 2 THIS ! 0030 DEFINE DATA LOCAL ! 3 THIS ! 0040 01 #I (P3) ! 4 THIS ! 0050 END-DEFINE ! 5 THIS ! 0060 * ! 6 THIS ! 0070 SET KEY PF1='%W<<' PF2='%W>>' PF ! 7 THIS ! 0080 * ! MORE ! 0090 DEFINE WINDOW WIND1 +-------------------------------------+ 0100 SIZE QUARTER 0110 BASE TOP RIGHT 0120 FRAMED ON POSITION SYMBOL AUTO 0130 * 0140 SET WINDOW 'WIND1' 0150 FOR #I = 1 TO 10 0160 WRITE 25X #I 'THIS IS SOME LONG TEXT' #I 0170 END-FOR 0180 * 0190 END 0200 ....+....1....+....2....+....3....+....4....+....5....+... S 19 L 1