これって何に使うの?というかたもいるでしょうが、いろいろ使えます。サブファイルで、一行、70バイトくらいのフィールドに、いくつかの編集された数字の文字列をCATして1行作成してみたり、CLPで数字編集した文字列をSNDMSGしたり、便利です。
※繰り返し使う場合は、QECEDTを呼び出す前にEDITEDうクリアしてください。2004-7-9
H 1 Y/ 1
I DS
I I 0 B 1 40MSKLEN
I I 0 B 5 80RCVLEN
I I 0 B 9 120INTLEN
I I 0 B 13 160PNTLEN
IERROR DS
I I 116 B 1 40BYTPRV
I I 0 B 5 80BYTAVA
I 9 15 ERRID
I 16 16 ERR###
I 17 116 INSDTA
C******************************************************
C* M A I N - R O U T I N E
C******************************************************
C CALL 'QECCVTEC' :
C PARM MASK 256 :
C PARM MSKLEN :
C PARM RCVLEN :
C PARM ' ' ZEROSP 1 ;
C PARM 'J' EDITCD 1 ;
C PARM ' ' SYMBOL 1 :
C PARM 15 INTLEN :
C PARM 0 PNTLEN :
C PARM ERROR :
C* ;
C Z-ADD-1500000 WRK 150
C* ;
C MOVE *ZERO EDIT ;
C MOVE WRK EDIT ;
C CALL 'QECEDT' :
C PARM EDITED256 ;
C PARM RCVLEN ;
C PARM EDIT 15 ;
C PARM '*ZONED' EDTCLS 10 ;
C PARM 15 INTLEN ;
C PARM MASK ;
C PARM MSKLEN ;
C PARM ZEROSP ;
C PARM ERROR :
C* ;
C MOVE *ON *INLR ;
C RETRN ;
デバッグでEDITの値を見ると、文字で 1,500,000- となっています。
RPGIV
H DEBUG DATEDIT(*YMD/)
D*
D ERROR DS
D BYTPRV 10I 0 INZ(%SIZE(ERROR))
D BYTAVA 10I 0 INZ(0)
D ERRID 7
D ERR### 1
D INSDTA 100
D*
D MSKLEN S 10I 0 INZ(0)
D RCVLEN S 10I 0 INZ(0)
D INTLEN S 10I 0 INZ(0)
D PNTLEN S 10I 0 INZ(0)
D*
D EDIT S 15
D EDITED S 256
D EDTCLS S 10
D MASK S 256
D WRK S 15 0
D EDITCD S 1
D SYMBOL S 1
D ZEROSP S 1
C***************************************************************************
* M A I N - R O U T I N E
C***************************************************************************
C CALL 'QECCVTEC' :
C PARM MASK :
C PARM MSKLEN :
C PARM RCVLEN :
C PARM ZEROSP ;
C PARM 'J' EDITCD ;
C PARM SYMBOL :
C PARM 15 INTLEN :
C PARM 0 PNTLEN :
C PARM ERROR :
C*
C EVAL WRK = -1500000
C MOVE(P) WRK EDIT ;
C*
C CALL 'QECEDT' :
C PARM EDITED ;
C PARM RCVLEN ;
C PARM EDIT ;
C PARM '*ZONED' EDTCLS ;
C PARM 15 INTLEN ;
C PARM MASK ;
C PARM MSKLEN ;
C PARM ZEROSP ;
C PARM ERROR :
C*
C MOVE *ON *INLR ;
C RETURN ;
|