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

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

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

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

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

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

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

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

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

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

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

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

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

この結果はTurner , Scott です。

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

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

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

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

3.3.4 [結合]

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