FUNCTION z_jexx_to_jedx.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(RMBXX) LIKE BSEG-WRBTR
*" CHANGING
*" REFERENCE(RMBDX1) TYPE C
*"----------------------------------------------------------------------
DATA: BEGIN OF rmb,
by TYPE c,
sy TYPE c,
y TYPE c,
qw TYPE c,
bw TYPE c,
sw TYPE c,
w TYPE c,
q TYPE c,
b TYPE c,
s TYPE c,
g TYPE c,
d TYPE c,
j TYPE c,
f TYPE c,
n TYPE c,
END OF rmb.
DATA: BEGIN OF rmbdx,
by(2) TYPE c,
by1(4) TYPE c,
sy(2) TYPE c,
sy1(4) TYPE c,
y(2) TYPE c,
y1(2) TYPE c,
qw(2) TYPE c,
qw1(4) TYPE c,
bw(2) TYPE c,
bw1(4) TYPE c,
sw(2) TYPE c,
sw1(4) TYPE c,
w(2) TYPE c,
w1(4) TYPE c,
q(2) TYPE c,
q1(4) TYPE c,
b(2) TYPE c,
b1(4) TYPE c,
s(2) TYPE c,
s1(4) TYPE c,
g(2) TYPE c,
d(2) TYPE c,
j(2) TYPE c,
j1(2) TYPE c,
f(2) TYPE c,
f1(2) TYPE c,
z(2) TYPE c,
END OF rmbdx.
DATA: y(1) TYPE c.
rmb = rmbxx.
IF NOT ( rmb-by IS INITIAL ) AND rmb-by NE '0'.
PERFORM dx USING rmb-by CHANGING rmbdx-by.
y = 'X'.
IF rmb-by NE '0'.
IF rmb-sy EQ '0' AND rmb-y EQ '0'.
rmbdx-by1 = '佰亿'.
ELSE.
rmbdx-by1 = '佰'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-sy IS INITIAL ).
IF rmb-sy NE '0' OR rmb-y NE '0'.
PERFORM dx USING rmb-sy CHANGING rmbdx-sy.
y = 'X'.
IF rmb-sy NE '0'.
IF rmb-y EQ '0'.
rmbdx-sy1 = '拾亿'.
ELSE.
rmbdx-sy1 = '拾'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-y IS INITIAL ).
IF rmb-y NE '0' OR rmb-qw NE '0'.
PERFORM dx USING rmb-y CHANGING rmbdx-y.
y = 'X'.
IF rmb-y NE '0'.
rmbdx-y1 = '亿'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-qw IS INITIAL ).
IF rmb-qw NE '0' OR rmb-bw NE '0'.
PERFORM dx USING rmb-qw CHANGING rmbdx-qw.
y = 'X'.
IF rmb-qw NE '0'.
IF rmb-bw EQ '0' AND rmb-sw EQ '0' AND rmb-w EQ '0'.
rmbdx-qw1 = '仟万'.
ELSE.
rmbdx-qw1 = '仟'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-bw IS INITIAL ).
IF rmb-bw NE '0' OR rmb-sw NE '0'.
PERFORM dx USING rmb-bw CHANGING rmbdx-bw.
y = 'X'.
IF rmb-bw NE '0'.
IF rmb-sw EQ '0' AND rmb-w EQ '0'.
rmbdx-bw1 = '佰万'.
ELSE.
rmbdx-bw1 = '佰'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-sw IS INITIAL ).
IF rmb-sw NE'0' OR rmb-w NE '0'.
PERFORM dx USING rmb-sw CHANGING rmbdx-sw.
y = 'X'.
IF rmb-sw NE '0'.
IF rmb-w EQ '0'.
rmbdx-sw1 = '拾万'.
ELSE.
rmbdx-sw1 = '拾'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-w IS INITIAL ).
IF rmb-w NE '0' OR rmb-q NE '0'.
PERFORM dx USING rmb-w CHANGING rmbdx-w.
y = 'X'.
IF rmb-w NE '0'.
rmbdx-w1 = '万'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-q IS INITIAL ).
IF rmb-q NE '0' OR rmb-b NE '0'.
PERFORM dx USING rmb-q CHANGING rmbdx-q.
y = 'X'.
IF rmb-q NE '0'.
rmbdx-q1 = '仟'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-b IS INITIAL ).
IF rmb-b NE '0' OR rmb-s NE '0'.
PERFORM dx USING rmb-b CHANGING rmbdx-b.
y = 'X'.
IF rmb-b NE '0'.
rmbdx-b1 = '佰'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-s IS INITIAL ).
IF rmb-s NE'0' OR rmb-g NE '0'.
PERFORM dx USING rmb-s CHANGING rmbdx-s.
y = 'X'.
IF rmb-s NE '0'.
rmbdx-s1 = '拾'.
ENDIF.
ENDIF.
ENDIF.
IF NOT ( rmb-g IS INITIAL ) AND rmb-g NE '0'.
PERFORM dx USING rmb-g CHANGING rmbdx-g.
y = 'X'.
ENDIF.
IF y EQ 'X'.
rmbdx-d = '圆'.
ENDIF.
IF NOT ( rmb-j IS INITIAL ) AND rmb-j NE '0'.
PERFORM dx USING rmb-j CHANGING rmbdx-j.
rmbdx-j1 = '角'.
ENDIF.
IF NOT ( rmb-f IS INITIAL ) AND rmb-f NE '0'.
PERFORM dx USING rmb-f CHANGING rmbdx-f.
rmbdx-f1 = '分'.
ELSE.
rmbdx-z = '整'.
ENDIF.
CONDENSE rmbdx NO-GAPS.
IF rmbxx = 0.
CLEAR rmbdx.
ENDIF.
rmbdx1 = rmbdx.
CLEAR y.
ENDFUNCTION.
*---------------------------------------------------------------------*
* FORM dx *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> VALUE(X) *
* --> DXX *
*---------------------------------------------------------------------*
FORM dx USING value(x) CHANGING dxx.
CASE x.
WHEN '0'.
dxx = '零'.
WHEN '1'.
dxx = '壹'.
WHEN '2'.
dxx = '贰'.
WHEN '3'.
dxx = '叁'.
WHEN '4'.
dxx = '肆'.
WHEN '5'.
dxx = '伍'.
WHEN '6'.
dxx = '陆'.
WHEN '7'.
dxx = '柒'.
WHEN '8'.
dxx = '捌'.
WHEN '9'.
dxx = '玖'.
ENDCASE.
ENDFORM. "dx
版权声明:本文为Summer_duan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。