Function That is use to convert digit currency into words currency.
I think I should share this:
This will convert Indian Rupees(digits) into word.
FUNCTION ZMM_AMT_WORDS_INR.
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” REFERENCE(AMOUNT) TYPE NETWR
*” EXPORTING
*” REFERENCE(WORD) TYPE Z_CHAR160
*”———————————————————————-
MAMOUNT = ABS( AMOUNT ).
MSTRING = FLOOR( MAMOUNT ).
CONDENSE MSTRING.
MLEN = STRLEN( MSTRING ).
IF MLEN > 10.
ENDIF.
MDECI = MAMOUNT – FLOOR( MAMOUNT ).
MPAISE = MDECI * 100.
MPAISESTATUS = ‘Y’.
ITAB_AMT–DESC = ‘One’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Two’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Three’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Four’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Five’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Six’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Seven’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Eight’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Nine’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Ten’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Eleven’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Twelve’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Thirteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Fourteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Fifteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Sixteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Seventeen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Eighteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Nineteen’.
APPEND ITAB_AMT.
ITAB_AMT–DESC = ‘Twenty’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Thirty’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Forty’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Fifty’.
APPEND ITAB_AMT.
PERFORMFILL_AMT.
ITAB_AMT–DESC = ‘Sixty’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Seventy’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Eighty’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
ITAB_AMT–DESC = ‘Ninety’.
APPEND ITAB_AMT.
PERFORM FILL_AMT.
MWORD = ‘Rupees’.
MLEN1 = MLEN.
DO.
WHILE MLEN > 0 AND MLEN <= 16.
IF MLEN = 16.
MCLTH = ‘Crore’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
MLEN1 = 0.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 15.
MCLTH = ‘Crore’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
MLEN1 = 0.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 14.
MCLTH = ‘Lakh’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
MLEN1 = 0.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 13.
MCLTH = ‘Lakh’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 12.
MCLTH = ‘Thousand’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 11.
MCLTH = ‘Thousand’.
MCONTINUE = ‘Y’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
MLEN1 = 0.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 10.
MCLTH = ‘Hundred’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 9.
MCLTH = ‘Crore’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
MLEN1 = 0.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 8.
MCLTH = ‘Crore’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 7.
MCLTH = ‘Lakh’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 6.
MCLTH = ‘Lakh’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 5.
MCLTH = ‘Thousand’.
MCONTINUE = ‘N’.
PERFORM JAPAMT99 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 4.
MCLTH = ‘Thousand’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 3.
MCLTH = ‘Hundred’.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’.
CONTINUE.
ENDIF.
ELSEIF MLEN = 2.
MSUBSCR = MSTRING.
MTMPSCR = MSUBSCR.
IF MSUBSCR = 0.
EXIT.
ENDIF.
IF MSUBSCR <= 20.
READ TABLE ITAB_AMT INTO MAMT_DESC INDEX MSUBSCR.
MLEN = 0.
ELSE.
MSUBSCR = MSTRING(1).
MSUBSCR = MSUBSCR * 10.
READ TABLE ITAB_AMT INTO MAMT_DESC INDEX MSUBSCR.
ENDIF.
CONCATENATE MWORD MAMT_DESC INTO MWORD SEPARATED BY SEP.
SHIFT MSTRING.
MLEN = MLEN – 1.
IF MTMPSCR > 20.
MSUBSCR = MSTRING(1).
IF MSUBSCR = 0.
SHIFT MSTRING.
MLEN = MLEN – 1.
CONTINUE.
ENDIF.
READ TABLE ITAB_AMT INTO MAMT_DESC INDEX MSUBSCR.
CONCATENATE MWORD MAMT_DESC INTO MWORD SEPARATED BY SEP.
SHIFT MSTRING.
MLEN = MLEN – 1.
ELSE.
EXIT.
ENDIF.
ELSEIF MLEN = 1.
MCLTH = ”.
MCONTINUE = ‘N’.
PERFORM JAPAMT9 CHANGING MSUBSCR
MLEN
MCLTH
MWORD
MCONTINUE.
IF MCONTINUE = ‘Y’ OR MLEN = 0.
EXIT.
ENDIF.
ENDIF.
ENDWHILE.
IF MPAISE > 0 AND MPAISESTATUS = ‘Y’.
MSTRING = MPAISE.
CONDENSE MSTRING.
MLEN = STRLEN( MSTRING ).
MPAISESTATUS = ‘N’.
CONCATENATE MWORD ‘And Paise’ INTO MWORD SEPARATED BY SEP.
ELSEIF
MLEN = 1.
ELSE.
EXIT.
ENDIF.
ENDDO.
CONCATENATE MWORD ‘only’ INTO MWORD SEPARATED BY SEP.
WORD = MWORD.
Best,
Abhijeet Kankani
ENDFUNCTION.
Hi Abhijeet,
Sorry for my ignorance. But, can you please tell me what is 'ditigit'?
Hello Shruti,
Now I have change the content Please check.
And thanks For telling me.
Best Regards
Abhijeet Kankani
Good One.
Hi abhijeet,
I Am in need of this function but as I copied it, Some declarations are missing can you share them so that I can use it.