1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 将小写金额转换成中文大写

将小写金额转换成中文大写

时间:2020-11-30 09:16:02

相关推荐

将小写金额转换成中文大写

FUNCTION ZCONV_AMOUNT_MB.

*"--------------------------------------------------------------------

"“局部接口:

*” IMPORTING

*" REFERENCE(VA1) TYPE P

*" CHANGING

*" REFERENCE(STR) TYPE MAKT-MAKTX

*"--------------------------------------------------------------------

Global data declarations

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 ‘分角元拾佰仟万拾佰仟亿拾佰仟万’.

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.

ENDFUNCTION.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。