入力データの値を、仮想項目として新たに別の値に変換することができます。例えば、文字形式の実データを仮想項目として数値形式の仮想項目データに変換することで、その仮想項目のデータを使って集計やソート処理が簡単にできるようになります。
以下に、所在地を対応する県コードに変換して、県コードでソートする例を示します。
指定例
ソート処理で仮想項目定義を指定する例を以下に示します。
ソート条件ファイル
LCondition | { $県コード := IF $所在地 == "東京" THEN 1 ELSEIF $所在地 == "神奈川" THEN 2 ELSEIF $所在地 == "大阪" THEN 3 ELSEIF $所在地 == "静岡" THEN 4 ELSE EMPTY ENDIF } |
ソート式 | $県コード, $店舗ID |
リターン式 | $店舗ID , $所在地 , $県コード |
上記例の仮想項目定義は、以下の手順で設定します。
仮想項目としたい項目名“県コード”を定義します。
$県コード := |
“もし所在地が東京なら、県コードを1に設定する”という条件は、IF式で定義します。
“所在地が東京”は論理式に、“県コードを1に設定”の結果はTHENで定義します。
全体をIF式で表記すると、以下になります。
IF $所在地 == "東京" THEN 1 |
同列の条件が複数ある場合は、ELSEIFで続けて定義します。同列条件がない場合は、省略します。
ELSEIF $所在地 == "神奈川" THEN 2 ELSEIF $所在地 == "大阪" THEN 3 ELSEIF $所在地 == "静岡" THEN 4 |
すべての条件がなくなったらELSEを書きます。このときの値は何もないので、EMPTYとなります。
IF式の最後にENDIFを書きます。
IF式の書式に上記例をあてはめると、以下になります。
参照
IF式の書式の詳細については、“A.7.3 IF式”を参照してください。
ポイント
処理手番が短縮できる
仮想項目機能を使わずに上記処理をする場合、入力ジャーナルファイルと、県コードを持つ入力マスタファイルを連結したあとで、ソート処理を実施する必要があります。
上記例のように仮想項目機能を使えば、ソート条件の中に仮想項目定義とソートの両方が定義できるので、ソート処理の実行だけで済みます。
次のように入力データの一部だけを変換することもできます。
以下は、値(通信料金)に下限値がある場合に、下限値以下の値を下限値に変換する例です。
指定例
ソート処理で仮想項目定義を指定する例を以下に示します。
ソート条件ファイル
LCondition | { $通信料金 := IF $計算前通信料金 <= 1000 THEN 1000 ELSE val($計算前通信料金) ENDIF } |
ソート式 | $ID |
リターン式 | $ID , $通信料金 |