Answer
Easytrieve Plusでは、数値タイプ(N、P、U、B)のデータは、 数字マスク を指定することでサイン付きデータとして扱われます。数字マスクが指定されていなければ、絶対値扱いとなります。サインの取扱いは以下のようになります。
・サイン付きフィールド(数字マスクを指定したフィールド)の規則。
受取側のフィールドが、ゼロまたは正のデータの代入ステートメントは、Nタイプの時はサインに「F」を、Pタイプの時はサインに「C」をセットします。負のデータはP,Nともにサインに「D」をセットします。Uタイプのフィールドについては数値の操作をする場合、サインには「F」を追加します。
・サインなしフィールド(数字マスクを指定しないフィールド)の規則。
サインなしフィールドを受取側とする代入ステートメントは、サインに「F」がセットされます。 サイン付きの数量数値データを絶対値に変換する場合には、この方法を用います。(サインなしフィールドを定義してデータをこのフィールドに移送します)
※注意:数値属性で定義しても数字マスクを指定しない場合には絶対値として扱われるため、DISPLAYやPRINTの結果として負数データにマイナス記号は表示されません。
記述例
(例) データ移送と結果
以下のサンプル例に対する[フィールド定義]
WK1 W 3 P
WK2 W 3 P 0
WK3 W 3 N
WK4 W 3 N 0
代入ステートメント [代入後の値](16進数で表示)
WK1 = 15 → 00015F
WK2 = 15 → 00015C
WK3 = 15 → F0F1F5
WK4 = 15 → F0F1F5 ( Nタイプの場合、+のサインと して「F」が使われる。)
WK1 = -15 → 00015F
WK2 = -15 → 00015D
WK3 = -15 → F0F1F5
WK4 = -15 → F0F1D5
(WK1、WK3は、数字マスクの指定がないため負数データが絶対値に変換される)