Easytrieve Plus : 数値フィールドのサインの取り扱い規則は? 負数データの処理、いろいろ。

book

Article ID: 185872

calendar_today

Updated On:

Products

EASYPROCLIB CA Easytrieve Report Generator CA Easytrieve Report Generator for Common Services

Issue/Introduction

Question
・数値フィールドのサインの取り扱い規則は?
・負数データが演算や移送処理で正数データとして扱われる。
・負数データにマイナスが表示されない。
・サイン付き数値データを絶対値に変更する方法は?
・負数データにマイナスが表示されない。(レポート処理)

Environment

z/OS, MSP, VOS3, IBM, FUJITSU, HITACHI

Resolution

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は、数字マスクの指定がないため負数データが絶対値に変換される。)

Additional Information

Old Japanese Knowledge document ID: JTEC000990