LXRPIA26 数字チェック/数値変換
サブルーチンID |
機能分類 |
サブルーチン名 |
テーブル名 |
---|---|---|---|
LXRPIA26 |
項目編集 |
LXRCIA26 |
インタフェース
入力(区分:INPUT-PARM=I,CONSTANT=C) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
I-LENG |
P(2) |
長さ |
IL |
03 |
I-STR-NU |
X(18) |
文字列(数字) |
I |
03 |
I-CHK-PARM |
X(50) |
チェック条件パラメータ |
C |
− |
− |
− |
'ENT=入力モード指定' |
− |
− |
− |
− |
(詳細はLXRPIZ11およびLXRPIA27の補足説明を参照のこと) |
− |
− |
− |
− |
− |
− |
出力(区分:OUTPUT-PARM=O,RTN-CODE=R) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
O-NUM |
9(18) |
数値 |
O |
03 |
O-RTN-CD |
X(10) |
リターンコード |
R |
− |
− |
− |
SPACE:正常終了 |
− |
− |
− |
− |
LXREA024:NUMERICエラー |
− |
− |
− |
− |
LXREA020:入力長が範囲外 |
− |
− |
− |
− |
LXREA008:入力文字列がスペース |
− |
− |
− |
− |
LXREA027:全桁満たされていない |
− |
− |
− |
− |
LXREA026:指定以外の文字あり |
− |
処理基準
-
注意事項1.〜3.に従ってチェックする。
-
I-STR-NUを次のように変換した結果を作業領域W-STR-NU-1,W-STR-NU-2(共にPIC X(18))にセットする。
2.1 LOW-VALUEをSPACEに置き換えて,その結果をW-STR-NU-1にセットする。
2.2 さらに右詰め処理を行い,前方のSPACEを'0'に置き換えた結果をW-STR-NU-2にセットする。
-
I-CHK-PARMに'ENT=MENT'または'ENT=MFILL'の指定があり,かつW-STR-NU-1がSPACEの時,O-NUMに0を,O-RTN-CDに'LXREA008'を返す。
-
そのほかの時,次の処理を行う。
4.1 I-CHK-PARMに'ENT=MFILL'の指定があり,かつI-LENGがW-STR-NU-1の有効桁数より大
きい時,O-NUMに0を,O-RTN-CDに'LXREA027'を返す。
4.2 そのほかの時,W-STR-NU-2に対してNUMERICチェックを行う。
4.2.1 エラーの時,O-NUMに0を,O-RTN-CDに'LXREA026'を返す。
4.2.2 エラーでない時,W-STR-NU-2をO-NUMに転送し,O-RTN-CDにSPACEを返す。
例1
I-LENG :6 I-STR-NU :'△123△△' I-CHK-PARM:'ENT=MENT' ↓ O-NUM :123 O-RTN-CD :SPACE
例2
I-LENG :2 I-STR-NU :'△123456' I-CHK-PARM:'ENT=MNENT' ↓ O-NUM :123456 O-RTN-CD :SPACE
例3
I-LENG :6 I-STR-NU :'123△△△' I-CHK-PARM:'ENT=MFILL' ↓ O-NUM :0 O-RTN-CD :'LXREA027'
注意事項
-
I-LENGについてNUMERICチェックを行い,数値でないときはリターンコードに'LXREA024'を返す。O-NUMには0を返す。
-
1≦I-LENG≦18でなければリターンコードに'LXREA020'を返す。O-NUMには0を返す。
-
(パラメータ解析:LXRPIZ11)を呼び出してI-CHK-PARMをチェックする。エラーの時は,リターンコードをそのまま返し,O-NUMには0を返す。
-
I-LENGがW-STR-NU-1の有効桁数より小さくても,数値変換の結果は切り捨てない。
-
I-STR-NUの中のLOW-VALUEは,半角空白と同様に扱う。
-
このサブルーチンから,3.のほかに(文字列右詰め:LXRPIA07),(文字列有効桁数算出:LXRPIA09)を呼び出す。