Hitachi

SEWB+/標準サブルーチン ライブラリリファレンス


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:頭切れが起こった

処理基準

  1. 次の順でチェックを行う。

    No.

    チェック

    リターンコード

    1

    2

    3

    長さ,金額が数字だけである

    1≦長さ≦60(30)

    タイプが'X','Z','N'のどれかである

    LXREF006

    LXREF004

    LXREF009

    エラーの場合,出力金額はスペースとする。

  2. タイプが'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'を送る。

  3. タイプが'Z'の場合,次の処理を行う。

    3.1 入力金額を----,---,---,---,---,--9に編集する。

    3.2 (文字列右詰め:LXRPIA07)を用いて長さ(I-LENG)に合わせて編集する。この際文字列の頭

      切れを起こすとリターンコードに'LXREF007'を送る。

  4. 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'を送る。

  5. 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

注意事項

  1. このサブルーチンから(文字列右詰め:LXRPIA07),(空白削除:LXRPIA15),(半角→全角変換:LXRPIC01),(漢字データ右詰め:LXRPIB05),(空白削除(漢字データ):LXRPIB08)を呼び出す。

  2. リターンコードがスペースでない場合,出力金額にはスペースを返す。ただし,リターンコードが'LXREF007'の場合は処理を続行し,出力金額には編集結果文字列をそのまま返す。

  3. EUC対応版,Unicode対応版で出力金額に半角カナが含まれる場合,文字数は実バイト長(EUC:2バイト/文字,Unicode:3バイト/文字)で指定する。