需求:会计凭证打印以及对外的单据上,要求打印大写人民币金额。
样式参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
REPORT ZGDR0039. DATA: VA1 TYPE P, "价格 (条件金额或百分数 ) 无等级存在. STR TYPE C LENGTH 40. "汉字大写金额 DATA: SCR(30) TYPE C, RES(60) TYPE C,FEN(2) TYPE C . DATA: LEN TYPE I, C1 TYPE I, C2 TYPE I, C3 TYPE I, C4 TYPE I. DATA: D1(1) TYPE C, D2(1) TYPE C, D3 TYPE I. DATA: DIGIT(2) TYPE C, WEIGHT(2) TYPE C. DATA: RULE1(20) TYPE C VALUE '零壹贰叁肆伍陆柒捌玖'. DATA: RULE2(30) TYPE C VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万'. PARAMETERS: P_VAL1 TYPE WRBTR. VA1 = P_VAL1. SCR = VA1 * 100. CONDENSE SCR NO-GAPS. IF SCR = '0'. RES = '零元'. ELSE. LEN = STRLEN( SCR ). C1 = 0. D1 = '0'. CLEAR RES. DO LEN TIMES. C1 = C1 + 1. C2 = LEN - C1. D2 = SCR+C2(1) . IF D2 = '0'. D3 = 0. ELSE. D3 = D2. ENDIF. DIGIT = RULE1+D3(1) . C3 = ( C1 - 1 ) . WEIGHT = RULE2+C3(1) . IF D2 = '0'. IF C1 = 3. DIGIT = ''. ELSEIF C1 = 7. DIGIT = ''. IF LEN > 10 . C4 = LEN - 10. IF SCR+C4(4) = '0000'. WEIGHT = ''. ENDIF. ENDIF. ELSEIF C1 = 11. DIGIT = ''. ELSEIF D1 = '0'. DIGIT = ''. WEIGHT = ''. ELSE. WEIGHT = ''. ENDIF. ENDIF. CONCATENATE DIGIT WEIGHT RES INTO RES . D1 = D2. ENDDO. ENDIF. LEN = STRLEN( RES ) - 1. FEN = RES+LEN(1). IF FEN <> '分' . CONCATENATE RES '整' INTO STR. ELSE. STR = RES. ENDIF. WRITE : / STR. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/7617.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。