LXRPIF09 金額編集
サブルーチンID |
機能分類 |
サブルーチン名 |
テーブル名 |
---|---|---|---|
LXRPIF09 |
項目処理 |
LXRCIF09 |
インタフェース
入力(区分:INPUT-PARM=I,CONSTANT=C) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
I-TYP |
X(1) |
タイプ |
OT |
− |
− |
− |
('X','Z','N'に限定) |
− |
03 |
I-LENG |
9(2) |
長さ |
OL |
− |
− |
− |
(タイプが'X','Z':1以上60以下に限定 |
− |
− |
− |
− |
タイプが'N' :1以上30以下に限定) |
− |
03 |
I-MINUS-CHR |
X(6) |
マイナスキャラクタ |
C |
03 |
I-KNGK |
P(18) |
入力金額 |
I |
− |
− |
− |
− |
− |
出力(区分:OUTPUT-PARM=O,RTN-CODE=R) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
O-KNGK |
X(60) |
出力金額 |
O |
03 |
O-RTN-CD |
X(10) |
リターンコード |
R |
− |
− |
− |
SPACE:正常 |
− |
− |
− |
− |
LXREF006:NUMERICエラー |
− |
− |
− |
− |
LXREF009:タイプが'X','Z','N'以外 |
− |
− |
− |
− |
LXREF004:入力データ不正 |
− |
− |
− |
− |
LXREF008:機能キャラクタ不正 |
− |
− |
− |
− |
LXREF007:頭切れが起こった |
− |
− |
− |
− |
− |
− |
処理基準
-
次の順でチェックを行う。
No.
チェック
リターンコード
1
2
3
長さ,金額が数字だけである
1≦長さ≦60(30)
タイプが'X','Z','N'のどれかである
LXREF006
LXREF004
LXREF009
エラーの場合,出力金額はスペースとする。
-
タイプが'X'の場合,次の処理を行う。
2.1 入力金額をZZZ,ZZZ,ZZZ,ZZZ,ZZZ,ZZ9に編集する。
2.2 マイナスキャラクタの先頭と末尾がX'0A42',X'0A41'の場合
入力金額が負数の場合,数値の前方にマイナスキャラクタを付加する。
入力金額が正数の場合,数値の後方にX'0A41'2個を付加する(出力位置を揃えるため)。
2.3 マイナスキャラクタ中に機能キャラクタが存在しない場合
入力金額が負数の場合,数値の前方にマイナスキャラクタを付加する。
2.4 マイナスキャラクタ中に機能キャラクタが不正に存在する場合※
リターンコードに'LXREF008'を送る。
出力金額にSPACEを送る。
2.5 (文字列右詰め:LXRPIA07)を用いて長さ(I-LENG)に合わせて編集する。この際文字列の頭
切れを起こすとリターンコードに'LXREF007'を送る。
-
タイプが'Z'の場合,次の処理を行う。
3.1 入力金額を----,---,---,---,---,--9に編集する。
3.2 (文字列右詰め:LXRPIA07)を用いて長さ(I-LENG)に合わせて編集する。この際文字列の頭
切れを起こすとリターンコードに'LXREF007'を送る。
-
VOS3版ではタイプが'N'の場合,次の処理を行う。
4.1 入力金額をZZZZZZZZZZZZZZZZZ9に編集する。
4.2 マイナスキャラクタの先頭と末尾がX'0A42',X'0A41'の場合
入力金額が負数の場合,数値の前方にマイナスキャラクタの中央2バイトを付加する。
4.3 マイナスキャラクタ中に機能キャラクタが存在しない場合
入力金額が負数の場合,数値の前方にマイナスキャラクタを付加する。
入力金額が正数の場合,数値の後方にX'0A41'2個を付加する(出力位置を揃えるため)。
4.4 マイナスキャラクタ中に機能キャラクタが不正に存在する場合※
リターンコードに'LXREF008'を送る。
出力金額にSPACEを送る。
4.5 (半角→全角変換:LXRPIC01)を用いて全角コードに変換する。
4.6 (漢字データ右詰め:LXRPIB05)を用いて長さ(I-LENG)に合わせて編集する。この際文字列
の頭切れを起こすとリターンコードに'LXREF007'を送る。
-
PC・UNIX版ではタイプが'N'の場合,次の処理を行う。
5.1 入力金額をZZZZZZZZZZZZZZZZZ9に編集する。
5.2 (半角→全角変換:LXRPIC01)を用いて全角コードに変換する。
5.3 入力金額が負数の場合,数値の前方にマイナスキャラクタを付加する。
5.4 (文字列右詰め:LXRPIA07)を用いて長さ(I-LENG)に合わせて編集する。この際文字列の頭
切れを起こすとリターンコードに'LXREF007'を送る。
注※ マイナスキャラクタの先頭にX'0A42'があるが後方にX'0A41'がない,または先頭にX'0A42'がないが後方にX'0A41'がある場合。
例1
I-TYP :'X' I-LENG :5 I-MINUS-CHR:'-' I-KNGK :-123 ↓ O-KNGK :'△-123' O-RTN-CD :SPACE
例2
I-TYP :'Z' I-LENG :5 I-MINUS-CHR:'-' I-KNGK :123456 ↓ O-KNGK :'3,456' O-RTN-CD :'LXREF007'
例3
I-TYP :'N' I-LENG :4 I-MINUS-CHR:'▲' I-KNGK :-12 ↓ O-KNGK :'△▲12' O-RTN-CD :SPACE
注意事項
-
このサブルーチンから(文字列右詰め:LXRPIA07),(空白削除:LXRPIA15),(半角→全角変換:LXRPIC01),(漢字データ右詰め:LXRPIB05),(空白削除(漢字データ):LXRPIB08)を呼び出す。
-
リターンコードがスペースでない場合,出力金額にはスペースを返す。ただし,リターンコードが'LXREF007'の場合は処理を続行し,出力金額には編集結果文字列をそのまま返す。
-
EUC対応版,Unicode対応版で出力金額に半角カナが含まれる場合,文字数は実バイト長(EUC:2バイト/文字,Unicode:3バイト/文字)で指定する。