3.3.6 [コード フラグメント]

LANSA

3.3.6 [コード フラグメント]


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

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

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

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

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

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

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

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

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

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

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

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

この結果はTurner , Scottです。

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

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

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

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

[結合]

Ýファイル内の仮想フィールド