Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


符号条件の使用

アプリケーションの中には、日付フィールドで、トリガーとして機能する (つまり、ある特殊な処理が必要であることを知らせる) ゼロのような特殊値を使用するものがあります。

例えば、Orders ファイルで Order-Date に 0 の値を使用すると、レコードはオーダー・レコードではなく顧客合計レコードであることを意味するという場合です。プログラムは、次のように日付を 0 と比較します。

01  Order-Record.
    05  Order-Date      Pic S9(5) Comp-3 Date Format yyxxx.
. . .
    If Order-Date Equal Zero Then . . .

しかし、DATEPROC コンパイラー・オプションの NOTRIG サブオプションを指定してコンパイルしている場合、この比較は有効ではありません。リテラル値の Zero は非日付であるため、仮定による世紀ウィンドウに対してウィンドウ操作されて値は 1900000 になります。

あるいは、次のように、リテラル比較の代わりに符号条件を使用できます。 符号条件を使用すると、Order-Date は非日付として扱われ、世紀ウィンドウは考慮に入れられません。

If Order-Date Is Zero Then . . .

このアプローチが適用されるのは、符号条件内のオペランドが算術式ではなく単純な ID である場合だけです。式を指定した場合は、適宜世紀ウィンドウが適用されてその式が最初に評価されます。そのあと、その式の結果に対して符号条件が比較されます。

代わりに UNDATE 組み込み関数または DATEPROC コンパイラー・オプションの TRIG サブオプションを使用しても、同じ結果が得られます。

関連概念
非日付の処理

関連参照
DATEPROC


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)