パーツ自体がサブタイプである場合は、追加のプロパティーを使用できます。 textUI タイプのプログラムには、alias というプロパティーのほかに、inputForm というプロパティーがあります。後者は、プログラム・ロジックが実行される前にユーザーに提示されるテキスト書式を識別します。
DataItem IDPart CHAR(9) { minInput = 9, // 9 文字の入力が必要 isDigits = yes, // 数字でなければならない columnName = "SSN" // 列へ関連付けられている }
myVariable IDPart;
この変数は、レコード・パーツなどのコンポジット・パーツの中で宣言するか、プログラムなどのロジック・パーツの中で直接宣言することができます。どの事例でも、パーツ型は、与えられたプロパティーが使用されているかを判別します。
この例では、プロパティー columnName が使用されるのは、変数が SQLRecord タイプのレコード内で宣言されている場合のみです。 2 つの妥当性検査プロパティーは、変数が pageHandler などのユーザー・インターフェース・パーツの中で宣言されている場合にのみ使用されます。
myVariable IDPart { isDigits = no };
この例では、プロパティー minInput はオーバーライドによって影響を受けず、プロパティー columnName は無視されます。
実行時にプロパティーにアクセスすることはできません。 例えば、SQL レコード・パーツに基づいた変数を作成する場合、tableNames プロパティー (これは、そのレコードのアクセス先となる SQL テーブルを識別します) に割り当てられた名前の取り出しや変更を行うロジックを作成することはできません。 変数宣言の中でプロパティー値をオーバーライドしたとしても、開発時に指定した値をロジックで変更することはできません。
プロパティー値へのランタイム・アクセスの欠如は、変数の内容を代入したり、その変数を引数として使用したときに、プロパティー値が内容と一緒に転送されないことを意味します。例えば、SQL レコード間でデータをコピーした場合、コピー先レコードのアクセス先となる SQL テーブルの指定には、変更が加えられません。 同様に、SQL レコードを EGL 関数に渡す場合、パラメーターはフィールド内容を受け取りますが、開発時に割り当てられていた SQL テーブルの指定を保存します。
ConsoleField などの事前定義 EGL パーツには、プロパティーとフィールドの両方を組み込むこともできます。フィールドは、プロパティーと異なり、実行時に使用可能 です。フィールド値を読み取るロジックを作成でき、多くの場合、フィールド値を変更するロジックも作成できます。
値の設定ブロックは、プロパティーとフィールドの両方の値を設定できるコード領域です。詳細については、『値の設定ブロック』を参照してください。
関連する概念
EGL での変数の参照
値の設定ブロック
関連する参照項目
EGL ソース形式の書式パーツ
SQL 項目のプロパティー