ページのトップに戻る
Interstage Data Effector ユーザーズガイド

4.2.1 データ値を別の値に変換する

入力データの値を、仮想項目として新たに別の値に変換することができます。例えば、文字形式の実データを仮想項目として数値形式の仮想項目データに変換することで、その仮想項目のデータを使って集計やソート処理が簡単にできるようになります。
以下に、所在地を対応する県コードに変換して、県コードでソートする例を示します。


図4.2 データ値を別の値に変換する例

指定例

ソート処理で仮想項目定義を指定する例を以下に示します。

ソート条件ファイル

LCondition
{
 $県コード :=
         IF      $所在地 == "東京"   THEN 1
         ELSEIF  $所在地 == "神奈川" THEN 2
         ELSEIF  $所在地 == "大阪"   THEN 3
         ELSEIF  $所在地 == "静岡"   THEN 4
         ELSE EMPTY
         ENDIF
}
ソート式
 $県コード, $店舗ID
リターン式
 $店舗ID , $所在地 , $県コード

上記例の仮想項目定義は、以下の手順で設定します。

  1. 仮想項目としたい項目名“県コード”を定義します。

    $県コード :=
  2. “もし所在地が東京なら、県コードを1に設定する”という条件は、IF式で定義します。
    “所在地が東京”は論理式に、“県コードを1に設定”の結果はTHENで定義します。
    全体をIF式で表記すると、以下になります。

       IF    $所在地  ==  "東京"   THEN 1
    
  3. 同列の条件が複数ある場合は、ELSEIFで続けて定義します。同列条件がない場合は、省略します。

       ELSEIF  $所在地 == "神奈川" THEN 2
       ELSEIF  $所在地 == "大阪"   THEN 3
       ELSEIF  $所在地 == "静岡"   THEN 4
  4. すべての条件がなくなったらELSEを書きます。このときの値は何もないので、EMPTYとなります。

  5. IF式の最後にENDIFを書きます。


IF式の書式に上記例をあてはめると、以下になります。

図4.3 IF式の書式と記載例

参照

IF式の書式の詳細については、“A.7.3 IF式”を参照してください。


ポイント

処理手番が短縮できる

仮想項目機能を使わずに上記処理をする場合、入力ジャーナルファイルと、県コードを持つ入力マスタファイルを連結したあとで、ソート処理を実施する必要があります。
上記例のように仮想項目機能を使えば、ソート条件の中に仮想項目定義とソートの両方が定義できるので、ソート処理の実行だけで済みます。

次のように入力データの一部だけを変換することもできます。

以下は、値(通信料金)に下限値がある場合に、下限値以下の値を下限値に変換する例です。

図4.4 データの一部を変換する例

指定例

ソート処理で仮想項目定義を指定する例を以下に示します。

ソート条件ファイル

LCondition
{
 $通信料金 :=
         IF      $計算前通信料金  <= 1000   THEN 1000
         ELSE    val($計算前通信料金)
         ENDIF
}
ソート式
 $ID
リターン式
 $ID , $通信料金