ABAP小写金额转大写
生活随笔
收集整理的這篇文章主要介紹了
ABAP小写金额转大写
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FUNCTION?ZFUC_NUMERIC_TO_CHINESE
.
*"----------------------------------------------------------------------
*"*"本地接口:
*"??IMPORTING
*"?????VALUE(IV_MONEY)?TYPE??BF_DMBTR
*"??EXPORTING
*"?????VALUE(EV_MONEY)?TYPE??STRING
*"??EXCEPTIONS
*"??????WRONG_MONEY
*"----------------------------------------------------------------------
??IV_MONEY? =? ABS (?IV_MONEY? ) .
?? 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? =?IV_MONEY?*? 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?EV_MONEY .
?? ELSE .
????EV_MONEY? =?RES .
?? ENDIF .
ENDFUNCTION .
*"----------------------------------------------------------------------
*"*"本地接口:
*"??IMPORTING
*"?????VALUE(IV_MONEY)?TYPE??BF_DMBTR
*"??EXPORTING
*"?????VALUE(EV_MONEY)?TYPE??STRING
*"??EXCEPTIONS
*"??????WRONG_MONEY
*"----------------------------------------------------------------------
??IV_MONEY? =? ABS (?IV_MONEY? ) .
?? 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? =?IV_MONEY?*? 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?EV_MONEY .
?? ELSE .
????EV_MONEY? =?RES .
?? ENDIF .
ENDFUNCTION .
總結
以上是生活随笔為你收集整理的ABAP小写金额转大写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库表-权限表应用
- 下一篇: ABAP 数据类型的区别和转换