ConsoleUI パーツおよび関連する変数

consoleUI で作業する場合、関連 consoleUI パーツに基づく、以下の種類の変数を作成します。

ライブラリー ConsoleLib は、PresentationAttribute 型 のシステム変数も含みます。 システム変数は、表示される出力のビジュアル面を制御します。ディスプレイの外観を変更するには、PresentationAttribute フィールドの「色 (color)」、「強調表示 (highlight)」、および「輝度 (intensity)」を設定することによってこれらの変数を変更することができます。 これらのフィールドについて詳しくは、『EGL consoleUI の PresentationAttribute フィールド』を参照してください。

Window

ウィンドウは、変数として表示されるその他のビジュアル・エンティティーを置くことができる長方形の領域です。

ウィンドウを表示し、その他のウィンドウが有効でない場合、新規ウィンドウが 画面ウィンドウ 内にあり、それはオペレーティング・システムのウィンドウの基本特性を持つ長方形です。 カーソル・ライブラリーが使用されていると、 これは、UNIX® では該当しません。 consoleUI ウィンドウのディスプレイは、ウィンドウ操作モードに既存のターミナル・ウィンドウを置きます。

表示する追加のウィンドウは、画面ウィンドウのコンテンツ部分、通常は既に開いているウィンドウの上部に表示されます。 ウィンドウの横並び表示も可能です。

ウィンドウを宣言すると、さまざまなプロパティーを設定することができます。例えば、「位置 (Position)」は、 ディスプレーの左上隅に相当する場所で、「サイズ (size)」は文字数におけるウィンドウの高さと幅です。サイズと位置の両方を指定する場合、変数とリテラル値を使用できます。

ウィンドウ宣言の例は、次のとおりです。
myWindow WINDOW 
{name="myWindow", position = [2,2],
 size = [18,75], color = red, hasborder=yes};

名前が ConsoleLib.openWindow で始まる EGL 関数を使用することによって、ウィンドウを表示します。 その他のデータを表示する際にウィンドウを表示しない場合は、EGL がウィンドウを提供します。

Prompt

プロンプトは、ユーザー入力を促す 1 行の文です。プロンプトの宣言は、次のとおりです。
  myPrompt Prompt { message = "Type your ID: "}; 

変数を openUI 文に入れることによってプロンプトを表示し、入力のためのみではなく、String 型の変数にプロンプトをバインドします。 単一文字またはストリングを受け入れるようにプロンプトを構成することができます。

ConsoleField

consoleField は、コンソール書式のコンテキストで宣言されるスクリーン内のフィールドです (後に説明)。 次の例は、コンテンツを実行時に変更できる consoleField を宣言します。
  myField ConsoleField (
    name="myFieldName",
    position=[1,31],
    fieldLen=20, 
    binding = "myVariable" );
定数テキストを指定するには、次の例のように、変数名の代わりにアスタリスク (*) を使用します。
  *    ConsoleField  
       { position=[2,5], value="Title:  " };

指定された consoleField を宣言する場合、consoleField と consoleField 内の名前属性の値と同じ名前を使用することを推奨します。 ただし、異なる名前はこれらの 2 つの使用の場合は有効です。 consoleField へのアクセスが生成時に解決されると、(myField のような) consoleField 名を参照します。 consoleField が openUI 文のイベントを定義するために使用される場合、実行時のアクセスが解決されると、(myFieldName のような) 名前 - 属性値を参照します。

ConsoleForm

consoleForm は主に consoleField のセットです。consoleForm をアクティブにするには、 システム関数 ConsoleLib.displayForm を起動します。例えば、読み取り専用 consoleForm を表示するには、 以下のようにします。
  1. ConsoleLib.displayForm を起動する
  2. ユーザーのキー・ストロークを待機するために、システム関数 ConsoleLib.getKey を起動する
ユーザーに consoleField への書き込みを許可するには、代わりに次のようにします。
  1. ConsoleLib.displayForm を起動する
  2. 表示される consoleForm または consoleForm で特定の consoleField のいずれかを参照する openUI 文を発行する

consoleForm はサブタイプ ConsoleForm のレコードで、consoleField だけでなく、すべての EGL レコードで有効なフィールドを含むことができます。

ユーザーに consoleField のスクリーン内の表と対話させるには、次のようにします。
  1. consoleForm で、consoleForm でも宣言されている consoleField 配列を順番に参照する arrayDictionary を宣言する
  2. openUI 文で arrayDictionary を使用する

ユーザーが consoleForm 内の consoleField のサブセットのみと対話できるようにするには、 明示的に、または辞書を参照することによって、openUI 文で consoleField をリスト表示することができます。 arrayDictionary 同様、その辞書は、consoleForm で宣言され、また consoleForm で宣言されている consoleField を参照します。

EGL は、consoleForm で宣言するすべてのプリミティブ変数を表示しません。 consoleField をバインドするために、このような変数を使用することができる一方、consoleForm の外で宣言した変数を使用することもできます。

一般に、以下の 2 つの方法で consoleForm バインディングを作成します。
  • consoleForm を宣言する際にデフォルトのバインディングを設定する
  • openUI 文をコードする際に、バインディングを設定する

openUI 文で指定されるすべてのバインディングはすべてのデフォルトのバインディングをオーバーライドし、 sconsoleForm 宣言バインディングは残りません。

変数をバインドするために openUI 文を使用する場合、 1 つのオプションは文のプロパティー isConstruct を使用することで、次のように機能します。
  • SQL WHERE 文節に適切なストリングにユーザー入力をフォーマットする
  • ストリングを単一変数に置くことによって、EGL prepare 文をコードする場合に、リレーショナル・データベースからユーザー要求データを検索する SQL SELECT 文を簡単にコードすることができる

プロパティー isConstruct について詳しくは、『OpenUI 文』を参照してください。

タブ順序 は、ユーザーがある consoleField から別の consoleField にタブで移動する順序です。 デフォルトでは、タブ順序は consoleForm 宣言の consoleField の順序です。 openUI 文で consoleField のリストを提供する場合、タブ順序はその文の consoleField の順序です。 同様に openUI 文に辞書または arrayDictionary を提供する場合、 タブ順序は辞書または arrayDictionary の宣言での consoleField の順序です。

デフォルトでは、ユーザーは Esc キーを押して、consoleForm 関連 openUI 文を終了します。

Menu

メニューは、水平に表示されるラベルのセットです。あるラベルは全体的にメニュー用で、あるラベルはメニューの各 menuItem 用です。 ユーザーが特定の menuItem を選択した際に確実に応答が行われるようにするには、openUI 文でメニューを全体として参照し、その文の OnEvent 文節で menuItem を参照します。

MenuItem

menuItem は、ラベルを表示し、先のセクションで説明したように使用されます。

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.