天天看点

将数字转换为英文输出的SAP程序(for abap)

*&---------------------------------------------------------------------* *& Report  ZTEST *& *&---------------------------------------------------------------------* *& *& create by 冲击波   2008.10.06 *&---------------------------------------------------------------------*

REPORT  ztest.

DATA num(16) TYPE p DECIMALS 0  .

DATA temp1 TYPE i . DATA temp2 TYPE i . DATA temp3 TYPE i . DATA temp4 TYPE i .

DATA tempq TYPE i . DATA tempw TYPE i . DATA tempe TYPE i . DATA tempr TYPE i .

DATA temp(16) TYPE p DECIMALS 0  . DATA tempii TYPE i . **** num = 123456789123 . **** ************************************************* temp = num .

temp1 = temp DIV 1000000000 . temp = temp MOD 1000000000 .

temp2 = temp DIV 1000000 . temp = temp MOD 1000000 .

temp3 = temp DIV 1000 . temp = temp MOD 1000 .

temp4 = temp . ******************************************************** IF temp1 <> 0 .   tempii = temp1 .

  tempw = tempii DIV 100 .   tempii = tempii MOD 100 .

  tempe = tempii DIV 10 .   tempii = tempii MOD 10 .

  tempr = tempii . *********************   IF tempw <> 0 .     tempii = tempw .     CASE tempii.

      WHEN  1 .         WRITE 'one' .       WHEN  2 .         WRITE 'two' .       WHEN  3 .         WRITE 'three' .       WHEN  4 .         WRITE 'four' .       WHEN  5 .         WRITE 'five' .       WHEN  6 .         WRITE 'six' .       WHEN  7 .         WRITE 'seven' .       WHEN  8 .         WRITE 'eight' .       WHEN  9 .         WRITE 'nine' .     ENDCASE.     WRITE 'hundred' .   ENDIF . *********************

  tempii = tempe .   CASE tempii.     WHEN  1 .       tempii = temp1 MOD 100.

      CASE tempii.

        WHEN  11 .           WRITE 'eleven' .         WHEN  12 .           WRITE 'twelve' .         WHEN  13 .           WRITE 'thirteen' .         WHEN  14 .           WRITE 'fourteen' .         WHEN  15 .           WRITE 'fifteen' .         WHEN  16 .           WRITE 'sixteen' .         WHEN  17 .           WRITE 'seventeen' .         WHEN  18 .           WRITE 'eighteen' .         WHEN  19 .           WRITE 'nineteen' .

      ENDCASE.

    WHEN  0 .

      IF tempr <> 0 .         WRITE 'and'.         tempr = tempii .         CASE tempii.

          WHEN  1 .             WRITE 'one' .           WHEN  2 .             WRITE 'two' .           WHEN  3 .             WRITE 'three' .           WHEN  4 .             WRITE 'four' .           WHEN  5 .             WRITE 'five' .           WHEN  6 .             WRITE 'six' .           WHEN  7 .             WRITE 'seven' .           WHEN  8 .             WRITE 'eight' .           WHEN  9 .             WRITE 'nine' .         ENDCASE.

      ENDIF .

    WHEN  2 .       WRITE 'twenty' .     WHEN  3 .       WRITE 'thirty' .     WHEN  4 .       WRITE 'fourty' .     WHEN  5 .       WRITE 'fifty' .     WHEN  6 .       WRITE 'sixty' .     WHEN  7 .       WRITE 'seventy' .     WHEN  8 .       WRITE 'eighty' .     WHEN  9 .       WRITE 'ninty' .   ENDCASE.

*********************** IF tempr <> 0 and tempe <> 0.         tempii = tempr .         CASE tempii.

          WHEN  1 .             WRITE 'one' .           WHEN  2 .             WRITE 'two' .           WHEN  3 .             WRITE 'three' .           WHEN  4 .             WRITE 'four' .           WHEN  5 .             WRITE 'five' .           WHEN  6 .             WRITE 'six' .           WHEN  7 .             WRITE 'seven' .           WHEN  8 .             WRITE 'eight' .           WHEN  9 .             WRITE 'nine' .         ENDCASE.

      ENDIF .

***********************

  write 'billion' .   write / . ENDIF .

*************************************************************** IF temp2 <> 0 . WRITE 'and' . tempii = temp2 .

tempw = tempii DIV 100 . tempii = tempii mod 100 .

tempe = tempii DIV 10 . tempii = tempii mod 10 .

tempr = tempii . ********************* IF tempw <> 0 .   tempii = tempw .   CASE tempii.

    WHEN  1 .       WRITE 'one' .     WHEN  2 .       WRITE 'two' .     WHEN  3 .       WRITE 'three' .     WHEN  4 .       WRITE 'four' .     WHEN  5 .       WRITE 'five' .     WHEN  6 .       WRITE 'six' .     WHEN  7 .       WRITE 'seven' .     WHEN  8 .       WRITE 'eight' .     WHEN  9 .       WRITE 'nine' .   ENDCASE.   WRITE 'hundred' . ENDIF . *********************

tempii = tempe . CASE tempii.   WHEN  1 .  tempii =   temp2 mod 100 .

    CASE tempii.

      WHEN  11 .         WRITE 'eleven' .       WHEN  12 .         WRITE 'twelve' .       WHEN  13 .         WRITE 'thirteen' .       WHEN  14 .         WRITE 'fourteen' .       WHEN  15 .         WRITE 'fifteen' .       WHEN  16 .         WRITE 'sixteen' .       WHEN  17 .         WRITE 'seventeen' .       WHEN  18 .         WRITE 'eighteen' .       WHEN  19 .         WRITE 'nineteen' .

    ENDCASE.

  WHEN  0 .

    IF tempr <> 0 .       WRITE 'and' .       tempr = tempii .       CASE tempii.

        WHEN  1 .           WRITE 'one' .         WHEN  2 .           WRITE 'two' .         WHEN  3 .           WRITE 'three' .         WHEN  4 .           WRITE 'four' .         WHEN  5 .           WRITE 'five' .         WHEN  6 .           WRITE 'six' .         WHEN  7 .           WRITE 'seven' .         WHEN  8 .           WRITE 'eight' .         WHEN  9 .           WRITE 'nine' .       ENDCASE.

    ENDIF .

  WHEN  2 .     WRITE 'twenty' .   WHEN  3 .     WRITE 'thirty' .   WHEN  4 .     WRITE 'fourty' .   WHEN  5 .     WRITE 'fifty' .   WHEN  6 .     WRITE 'sixty' .   WHEN  7 .     WRITE 'seventy' .   WHEN  8 .     WRITE 'eighty' .   WHEN  9 .     WRITE 'ninty' . ENDCASE.

*********************** IF tempr <> 0 and tempe <> 0.         tempii = tempr .         CASE tempii.

          WHEN  1 .             WRITE 'one' .           WHEN  2 .             WRITE 'two' .           WHEN  3 .             WRITE 'three' .           WHEN  4 .             WRITE 'four' .           WHEN  5 .             WRITE 'five' .           WHEN  6 .             WRITE 'six' .           WHEN  7 .             WRITE 'seven' .           WHEN  8 .             WRITE 'eight' .           WHEN  9 .             WRITE 'nine' .         ENDCASE.

      ENDIF .

***********************   write 'million' .   write / . ENDIF .

*************************************************************** IF temp3 <> 0 . WRITE 'and' . tempii = temp3 .

tempw = tempii DIV 100 . tempii = tempii mod 100 .

tempe = tempii DIV 10 . tempii = tempii mod 10 .

tempr = tempii . ********************* IF tempw <> 0 . tempii = tempw . CASE tempii.

  WHEN  1 .     WRITE 'one' .   WHEN  2 .     WRITE 'two' .   WHEN  3 .     WRITE 'three' .   WHEN  4 .     WRITE 'four' .   WHEN  5 .     WRITE 'five' .   WHEN  6 .     WRITE 'six' .   WHEN  7 .     WRITE 'seven' .   WHEN  8 .     WRITE 'eight' .   WHEN  9 .     WRITE 'nine' . ENDCASE. WRITE 'hundred' . ENDIF . *********************

tempii = tempe . CASE tempii. WHEN  1 .   tempii = temp3 mod 100 .

  CASE tempii.

    WHEN  11 .       WRITE 'eleven' .     WHEN  12 .       WRITE 'twelve' .     WHEN  13 .       WRITE 'thirteen' .     WHEN  14 .       WRITE 'fourteen' .     WHEN  15 .       WRITE 'fifteen' .     WHEN  16 .       WRITE 'sixteen' .     WHEN  17 .       WRITE 'seventeen' .     WHEN  18 .       WRITE 'eighteen' .     WHEN  19 .       WRITE 'nineteen' .

  ENDCASE.

WHEN  0 .

  IF tempr <> 0 .     WRITE 'and' . tempr = tempii .     CASE tempii.

      WHEN  1 .         WRITE 'one' .       WHEN  2 .         WRITE 'two' .       WHEN  3 .         WRITE 'three' .       WHEN  4 .         WRITE 'four' .       WHEN  5 .         WRITE 'five' .       WHEN  6 .         WRITE 'six' .       WHEN  7 .         WRITE 'seven' .       WHEN  8 .         WRITE 'eight' .       WHEN  9 .         WRITE 'nine' .     ENDCASE.

  ENDIF .

WHEN  2 .   WRITE 'twenty' . WHEN  3 .   WRITE 'thirty' . WHEN  4 .   WRITE 'fourty' . WHEN  5 .   WRITE 'fifty' . WHEN  6 .   WRITE 'sixty' . WHEN  7 .   WRITE 'seventy' . WHEN  8 .   WRITE 'eighty' . WHEN  9 .   WRITE 'ninty' . ENDCASE.

*********************** IF tempr <> 0 and tempe <> 0.         tempii = tempr .         CASE tempii.

          WHEN  1 .             WRITE 'one' .           WHEN  2 .             WRITE 'two' .           WHEN  3 .             WRITE 'three' .           WHEN  4 .             WRITE 'four' .           WHEN  5 .             WRITE 'five' .           WHEN  6 .             WRITE 'six' .           WHEN  7 .             WRITE 'seven' .           WHEN  8 .             WRITE 'eight' .           WHEN  9 .             WRITE 'nine' .         ENDCASE.

      ENDIF .

***********************   write 'thound' .   write / .

ENDIF .

***************************************************************

IF temp4 <> 0 . WRITE 'and' . tempii = temp4 .

tempw = tempii DIV 100 . tempii = tempii mod 100 .

tempe = tempii DIV 10 . tempii = tempii mod 10 .

tempr = tempii . ********************* IF tempw <> 0 . tempii = tempw . CASE tempii.

WHEN  1 .   WRITE 'one' . WHEN  2 .   WRITE 'two' . WHEN  3 .   WRITE 'three' . WHEN  4 .   WRITE 'four' . WHEN  5 .   WRITE 'five' . WHEN  6 .   WRITE 'six' . WHEN  7 .   WRITE 'seven' . WHEN  8 .   WRITE 'eight' . WHEN  9 .   WRITE 'nine' . ENDCASE. WRITE 'hundred' . ENDIF . *********************

tempii = tempe . CASE tempii. WHEN  1 . tempii = temp2 mod 100.

CASE tempii.

  WHEN  11 .     WRITE 'eleven' .   WHEN  12 .     WRITE 'twelve' .   WHEN  13 .     WRITE 'thirteen' .   WHEN  14 .     WRITE 'fourteen' .   WHEN  15 .     WRITE 'fifteen' .   WHEN  16 .     WRITE 'sixteen' .   WHEN  17 .     WRITE 'seventeen' .   WHEN  18 .     WRITE 'eighteen' .   WHEN  19 .     WRITE 'nineteen' .

ENDCASE.

WHEN  0 .

IF tempr <> 0 .   WRITE 'and' . tempr = tempii .   CASE tempii.

    WHEN  1 .       WRITE 'one' .     WHEN  2 .       WRITE 'two' .     WHEN  3 .       WRITE 'three' .     WHEN  4 .       WRITE 'four' .     WHEN  5 .       WRITE 'five' .     WHEN  6 .       WRITE 'six' .     WHEN  7 .       WRITE 'seven' .     WHEN  8 .       WRITE 'eight' .     WHEN  9 .       WRITE 'nine' .   ENDCASE.

ENDIF .

WHEN  2 . WRITE 'twenty' . WHEN  3 . WRITE 'thirty' . WHEN  4 . WRITE 'fourty' . WHEN  5 . WRITE 'fifty' . WHEN  6 . WRITE 'sixty' . WHEN  7 . WRITE 'seventy' . WHEN  8 . WRITE 'eighty' . WHEN  9 . WRITE 'ninty' . ENDCASE.

*********************** IF tempr <> 0 and tempe <> 0.         tempii = tempr .         CASE tempii.

          WHEN  1 .             WRITE 'one' .           WHEN  2 .             WRITE 'two' .           WHEN  3 .             WRITE 'three' .           WHEN  4 .             WRITE 'four' .           WHEN  5 .             WRITE 'five' .           WHEN  6 .             WRITE 'six' .           WHEN  7 .             WRITE 'seven' .           WHEN  8 .             WRITE 'eight' .           WHEN  9 .             WRITE 'nine' .         ENDCASE.

      ENDIF .

***********************

ENDIF .

***************************************************************

继续阅读