EGL ソース形式の DataTable パーツ

dataTable パーツは EGL ソース・ファイルで宣言します。これについては、『EGL プロジェクト、パッケージ、およびファイル』で説明しています。このパーツは生成可能なパーツです。つまり、このパーツは、ファイルの最上位にあり、ファイルと同じ名前を持つ必要があります。

1 つの dataTable は、プログラムの使用宣言、または (プログラムの唯一のメッセージ・テーブルの場合は) プログラムの msgTablePrefix プロパティーによって、そのプログラムに関連付けられます。 dataTable は、pageHandler の使用宣言により、pageHandler に関連しています。

dataTable パーツの一例を以下に示します。
     DataTable myDataTablePart type basicTable
       { 
         { shared = yes }
         myColumn1 char(10);
         myColumn2 char(10);
         myColumn3 char(10);

 
         { contents = [
          [ "row1 col1", "row1 col2", "row1 " + "col3" ] ,
          [ "row2 col1", "row2 col2", "row2 " + "col3" ] ,  
          [ "row3 col1", "row3 col2", "row3 col3"      ]
                    ]
       } 
     end
dataTable パーツの構文図は、以下のとおりです。

dataTable パーツの構文図
DataTable dataTablePartName ... end
パーツを dataTable として識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
basicTable (デフォルト)
プログラム・ロジックで使用される情報 (例えば、国およびそれに関連付けられているコード) を含んでいます。
matchInvalidTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力は、dataTable の最初の列の値とは異なっている必要があることを示します。検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるテキスト・フィールドにメッセージを表示する。
matchValidTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力が dataTable の最初の列の値に一致する必要があることを示します。検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるフィールドにメッセージを表示する。
msgTable
ランタイム・メッセージが含まれています。メッセージは、以下の状況で表示されます。
  • テーブルが、プログラムのメッセージ・テーブルである。プログラムへの DataTable の関連付けは、 プログラム・プロパティー msgTablePrefix が、DataTable の名前の先頭の 1 文字から 4 文字であるテーブル接頭部 を参照している場合に行われます。 メッセージ・テーブルに名前を付ける際には、次の表に示されている、各国語を表す 3 文字のコードを含めます。

    言語 各国語コード
    ブラジル・ポルトガル語 PTB
    中国語 (簡体字) CHS
    中国語 (繁体字) CHT
    英語、大文字 ENP
    英語 (米国) ENU
    フランス語 FRA
    ドイツ語 DEU
    イタリア語 ITA
    日本語、カタカナ (1 バイト文字セット) JPN
    韓国語 KOR
    スペイン語 ESP
    スイス・ドイツ語 DES
  • プログラムは、『ConverseLib.displayMsgNum』および『ConverseLib.validationFailed』で説明されている 2 つのメカニズムの内の 1 つによってメッセージを取り出し、それを表示します。
rangeChkTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力が、少なくとも 1 つのデータ・テーブル行の第 1 列の値と第 2 列の値との間の値に一致する必要があることを示します。(範囲は包括的です。 ユーザーの入力が任意の行の最初の列または 2 番目の列の値と一致している場合は、有効です。)検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるフィールドにメッセージを表示する。
"alias"
生成された出力の名前に取り込まれるストリング。別名を指定しなかった場合は、dataTable 名が代わりに使用されます。
shared
dataTable の同じインスタンスが、同じ実行単位の複数のプログラムによって使用されるかどうかを示します。有効な値は、yes および no (デフォルト) です。 shared の値が no の場合は、実行単位内の各プログラムは、dataTable の固有のコピーを持ちます。

このプロパティーは、dataTable の同じインスタンスが、同じ 実行単位の各プログラムによって使用されるかどうかを示します。shared の値が no の場合は、実行単位内の各プログラムは、dataTable の固有のコピーを持ちます。

実行時に行われた変更は、dataTable にアクセスできるすべてのプログラムに対して可視になっており、その dataTable がアンロードされるまで、その変更はそのまま維持されます。いつ dataTable がアンロードされるかは、ほとんどの場合、resident プロパティー (後述) の値によって決まります。詳しくは、このプロパティーの説明を参照してください。

resident
dataTable にアクセスしたすべてのプログラムが終了した後も、その dataTable をメモリー内に保持しておくかどうかを示します。

有効値は yes および no です。 デフォルトは no です。

resident プロパティーを yes に設定すると、shared の値に関係なく、dataTable は共用されます。

dataTable を常駐させておくことの利点は、以下のとおりです。
  • dataTable は、以前に実行されたプログラムによって書き込まれた値をすべて保持する。
  • 追加のロード処理を行わなくても、テーブルに即時にアクセスできる。

常駐 dataTable は、実行単位が終了するまでロードされたままです。ただし、非常駐 dataTable は、それを使用しているプログラムが終了するとアンロードされます。

注: dataTable は、EGL ランタイムが使用宣言を処理するときではなく、プログラムが最初にアクセスしたときに、(必要であれば) メモリーにロードされます。
contents
dataTable セルの値。各セルの種類は、以下のいずれかです。
  • 数値リテラル
  • 文字列リテラル、または文字列リテラルの連結

ある特定の行の内容の種類には、最上位の構造体フィールド (各フィールドは、列定義を表します) との互換性が必要です。

structureField
構造体フィールド。詳細については、『EGL ソース形式の構造体フィールド』を参照してください。

関連概念
DataTable
EGL プロジェクト、パッケージ、およびファイル
実行単位

関連リファレンス
命名規則
EGL ソース形式の構造体フィールド
displayMsgNum()
validationFailed()
使用宣言

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