現在地: LANSA テクニカル リファレンスガイド > 3. テーブル > 3.3 テーブル内の仮想列 > 3 3 6 コード フラグメント

3.3.6 コード フラグメント

コード・フラグメントによる仮想列を使用すると、RDMLX コードを指定して、テーブルから読み取る際に仮想列の値を設定したり、テーブルに書き込む際に実列の値を設定したりできます。

コード・フラグメントは、RDML/X コマンドのすべてはサポートしません。If、Case、Dountil、Dowhile、Change、Assign などに限りコード・フラグメントを作成できます。

コード・フラグメントには、実行時にテーブル内のすべての列への読み取り専用アクセス権があります。仮想列の複雑なコーディングやテーブル内のフィールドの更新にトリガー・ファンクションを使用することができます。

コード・フラグメントを指定するには、[詳細] タブの [仮想列タイプ] ドロップダウン・リストで [コードフラグメント] を選択します。[詳細] タブで [レコード読込み後に値を設定] のオプションを選択すると、[仮想列の設定] の関連タブが表示されます。仮想列の値を設定するために使用するコード・フラグメントを入力します。通常、コード・フラグメントは、テーブル上の 1 つ以上の実列から派生しますが、システム変数、言語変数、および作業フィールドを使用することもできます。

[テーブル書込み前に実列へ値を設定] オプションを選択すると、[物理列の設定] の関連タブが表示されます。実列の値を設定するために使用するコード・フラグメントを入力します。通常、コード・フラグメントは、現在の仮想列から派生します。

以下の例では、最初のオプションのみを選択しているため、[仮想列の設定] タブのみが表示されています。

image001

両方のオプションを選択すると、両方のタブが表示されます。

image003

2 番目のオプションのみを選択すると、[物理列の設定] タブのみが表示されます。

image005

コード・フラグメントと結合

コード・フラグメントでは、結合より厳密な制御が可能で、多様性に富んでいます。以下の結合の例では、同じ情報を使用して (単純に定義の逆を適用して) 実列および仮想列の値を設定しています。この場合、同様の結果は得られますが、まったく同じ結果にはなりません。

コード・フラグメントは以下のとおりです。

#fullname := #surname + ' , ' + #givename

この結果はTurner , Scottです。

一方、姓と氏名を結合すると、TurnerScottになります。

また、以下も参照してください。

コード・フラグメントによる仮想列の設定

コード・フラグメントによる実列の設定

3.3.4 結合