VGUIRecord プロパティーの使用

フィールド・プロパティー間の関係によって、EGL が VGUIRecord のフィールドを JSP の HTML コントロールに変換する方法が決まります。

ほとんどの UI コントロールでは、uiType プロパティーを以下の値の 1 つに設定することが必要です。

下の表に、指定された各 HTML コントロールの作成方法を示します。

表 1. HTML コントロール
HTML コントロール フィールドは配列? uiType フィールド長

selectedIndex-
項目

フィールド値
テキスト・ボックス N input または inputOutput <=80 文字 該当なし 初期表示
テキスト・エリア N input または inputOutput > 80 文字 該当なし 初期表示 (<textarea> タグと </textarea> タグの間)
ラジオ・ボタン Y input または inputOutput 該当なし 数値フィールド 未使用
チェック・ボックス Y input または inputOutput 該当なし 数値配列 未使用
単一選択コンボ・ボックス Y output 該当なし 数値フィールド コンボ・ボックスの項目
複数選択コンボ・ボックス Y output 該当なし 数値配列 コンボ・ボックスの項目
以下のコードによって、3 つのラジオ・ボタンが作成されます。
10 ID  INT [3] { 
		displayName = "First option: ¥nSecond option: ¥nThird option:" ,
		selectedIndexItem = SELECTEDID,
		uiType = input
		} = [1, 2, 3];
		
10 SELECTEDID int {
		uiType = none
		};

表示されるコントロールは、以下のサンプルのようになります。

「First option」などのラベルが表示される 3 つのラジオ・ボタン。各ラベルの後に、番号が中に表示されているテキスト・ボックスが配置されます。

各ラジオ・ボタンのラベルの後に、対応する配列のメンバーの値が表示されているテキスト・ボックスが配置されていることに注意してください。これらのテキスト・ボックスは VisualAge® Generator 実装の成果物であり、EGL は、互換性を確保するために、この動作を維持します。表示を生成する変数は 3 つの INT メンバーを持ち、input の uiType を持つため、理論上はこれらの任意のメンバーに新規の値を入力することができますが、実際にそれを行う理由はありません。

以下のコードで、SELECTEDID を配列に変更すると、ラジオ・ボタンではなくチェック・ボックスを持つ Web ページが作成されます。
10 SELECTEDID int [3] {
		uiType = none
		};
同じコードで、uiType を output に変更すると、EGL はラジオ・ボタンまたはチェック・ボックスではなくコンボ・ボックスを作成します。 また、ユーザーはプロンプト・メッセージからではなく配列から値を選択しているため、ここで表示名を変更することも意味があります。SELECTEDID が配列である場合、ユーザーはシフト・キーを押したまま複数の選択を行うことができます。 以下のコードのように、SELECTEDID が単一の INT の場合、ユーザーは単一の値のみを選択することができます。
10 ID  INT [3] { 
		displayName = "Pick a number:" ,
		selectedIndexItem = SELECTEDID,
		uiType = output
		} = [1, 2, 3];
		
10 SELECTEDID int {
		uiType = none
		};

表示されるコントロールは、以下のサンプルのようになります。

コンボ・ボックスはオプションとして 1 から 3 の番号を持ちます。

他のコントロール

uiType プロパティーの他の値によって、他の HTML 成果物が作成されます。VGUIRecord ソース・ファイルのフィールドの以下の例を考えてみます。
10 MYLINK char(32) {
   displayName = "MyLink",
   uiType = programLink,
   @programLinkData {
      programName = "DEST_PGM",
      uiRecordName = "DEST_PGE",
      newWindow = no,
      linkParms = [
         @linkParameter { name = "PARM", value="ParmData" },
         @linkParameter { name = "NAME", valueRef=NAME },
         @linkParameter { name = "ID", value="107" }
      ]
   }
};

ここで、programLink の UI タイプによって、displayName プロパティー (「MyLink」) の内容をリンクとして表示することができます。そのリンクは、uiRecordName プロパティー (「DEST_PGE」) のページを起動する programName プロパティー (「DEST_PGM」) のプログラムを指します。各 @linkParameter プロパティーの名前と値は、宛先プログラムの URL によって照会ストリングに渡されます。

以下のサンプルは、<FORM> タグとブラウザー上のすべての関連コンテンツとを生成するフィールドを示したものです。
10 MYFORM01   char(60) {
   displayName = "MyForm01",
   uiType = uiForm,
   @programLinkData {
      programName = "DEST_PGM",
      uiRecordName = "DEST_PGE",
      newWindow = no,
      linkParms = [
         @linkParameter { name = "PARM", value="ParmData" }
      ]
   }
};
MYFORM01 の下のサブストラクチャー・フィールドは、以前に示した入力コントロールまたは 出力コントロール、または以下の実行ボタンなどの書式内のフィールドの宣言です。
20 BUTTON1 char(8) {
   displayName = "Submit",
   uiType = submit
   } = "SUBMIT";

ユーザーが書式を送信すると、VGWebTransaction プログラムは show コマンドを使用して、programName プロパティーのプログラムを呼び出します。 フィールド値が呼び出し先プログラムに渡される方法について詳しくは、「EGL 言語解説書」の『show』を参照してください。


フィードバック