変更するフィールド、リスト、または拡張可能なグループ式の名前を指定します。
FIELD パラメータで指定したフィールドに設定する新しい値を指定します。指定する新しい値として、別のフィールド名、英数字リテラル、数値リテラル、システム変数、プロセス・パラメータ、またはこれらを組み合わせた式を使用できます。
RDML フィールドを使用する場合、VALUE パラメータに以下のいずれかの「特別な」値を指定することもできます。
*NULL |
すべての英数字フィールドがブランクに、またすべての数値フィールドが 0 に設定されます。 |
*NAVAIL |
すべての数値フィールドが 0 に、また 3 文字未満のすべての英数字フィールドがブランクに設定されます。3 文字以上の英数字フィールドは、そのフィールドに収まる分の "N/AVAIL" に設定されます。 |
*DEFAULT |
すべてのフィールドが、そのデータ・ディクショナリまたはプログラムで定義されているデフォルト値に設定されます。 |
*HIVAL |
すべてのフィールドがそのフィールドの最大値に設定されます。すなわち、英数字フィールドの場合は、すべてのバイトが 16 進数 X'FF' に設定され、数値フィールドの場合は、すべての桁が 9 に設定され、符号がプラス (+) になります。 |
*LOVAL |
すべてのフィールドがそのフィールドの最小値に設定されます。すなわち、英数字フィールドの場合は、すべてのバイトが 16 進数 X'00' に設定され、数値フィールドの場合は、すべての桁が 9 に設定され、符号がマイナス (-) に設定されます。 |
Visual LANSA アプリケーションでは、以下の特別なオプションを使用できます。
|
以下の表に、特別な値が指定された場合の RDMLX フィールドの動作について説明します (RDMLX のPacked および Signed フィールドの動作は、同じタイプの RDML フィールドと同じです)。
|
数式に対してのみ使用し、RDML コンパイラーによって生成される中間作業フィールドに使用する精度を指定します。
数式の評価時に、RDML コンパイラーはデフォルトで、中間作業フィールドの精度を計算しようとします。この処理は、このパラメータが指定されなかった場合や、デフォルト値が指定された場合に実行されます。
このロジックでは、先頭 (または有効) 桁の精度が優先されるため、場合によっては、小数部の精度が失われることがあります。PRECISION パラメータは、中間作業フィールドで必要な精度を手作業で指定するために用意されています。
例えば、数値 9,2 と数値 15,9 を掛け合わせる場合、このロジックでは、一方の数値 (9,2) の先頭桁が 7桁であると判断されます。そのため、中間計算では、同じく先頭桁が 7 である 15,8 の作業フィールドが使用され、これによって小数部の精度が失われる可能性があります。
この問題を解決し、中間作業フィールドで強制的に定義済みの精度が使用されるようにするには、PRECISION パラメータを使用します。
このパラメータでは、2 つの値を指定します。最初の値では、すべての中間作業フィールドに保持する合計桁数(小数部を含む) を指定し、2 番目の値では、その合計桁数のうち小数点以下桁数は何桁かを指定します。PRECISION パラメータを指定するときは、合計桁数と小数点以下桁数の両方を指定してください。
例えば、PRECISION(15 6) は、合計桁数が 15 桁で、そのうち 6 桁が小数点以下であることを示します。すなわち、作業フィールドの先頭桁 は9 桁、小数点以下は 6 桁です。
通常、必要な小数点以下桁数が、式に含まれるどのフィールドの小数点以下桁数よりも小さい場合に、PRECISION パラメータをコード化することは稀です。
参照
数式および datetime 式に対してのみ使用し、FIELD パラメータで指定された結果フィールドに保管する前に、式の結果を「切り上げる」かどうかを指定します。
このパラメータを指定しないか、値 *NO を指定すると、結果フィールドに収まらない小数部は切り捨てられます。
例えば、整数値 3 を整数値 2 で割り、その結果を整数フィールドに保管すると、結果は 1 になります。
ただし、ROUND_UP パラメータと適切な PRECISION パラメータを使用すれば、結果は整数値 2 になります。
PRECISION パラメータは、必ず ROUND_UP パラメータと組み合わせて使用してください。こうすることで、式の評価に使用されるすべての中間作業フィールドの小数点以下桁数が、FIELD パラメータで指定されたフィールドよりも 1 桁以上大きくなります。
関連する中間作業フィールドの小数点以下桁数が、FIELD パラメータで指定されたフィールドより 1 桁以上大きくない場合、ROUND_UP パラメータは無視され、ROUND_UP(*NO) が指定されたかのように扱われます。
Datetime フィールドの秒の小数部 は0~9 です。長い Datetime を短い Datetime に割り当てる場合、デフォルトでは、秒の小数部が切り捨てられます。ROUND_UP を指定すると、適切な場合に、秒の小数部が切り上げられます。
ROUND_UP パラメータを使用した場合、RPG の「四捨五入」機能を使用した場合と同じ結果になります。実際、ROUND_UP パラメータを使用すると、中間作業フィールドから (変換されたRPG内の) 結果フィールドに最終的にマッピングするときに、(中間作業フィールドの小数点以下桁数が結果フィールドより大きい場合は) RPG の「四捨五入」オプションが使用されます。
「四捨五入」機能の仕組みの詳細については、適切な RPG マニュアルで参照できます。
移植性に関する考慮事項 |
この値として *YES を指定する場合、プラットフォーム間で一貫性のある結果を得るために、適切な PRECISION 値を指定してください。この規則に従わないと、コードを複数のプラットフォームに移植したときに、丸めた値にばらつきが生じる可能性があります。 |