Hola Arup,
Si revisas la documentación del Módulo de Función, te indica que la tabla T015Z debe personalizarse para tu idioma si el formato predeterminado de los montos escritos no es aceptable.
Desafortunadamente, los valores se almacenan solo según el idioma, y no según la moneda. Por lo tanto, si configuras la tabla para el idioma inglés, entonces todos los usuarios que inicien sesión en inglés obtendrán el mismo formato (LAKHS, CRORES, etc.). Esto puede no ser aceptable para usuarios en un país como EE. UU., donde el formato preferido podría ser MILLONES, BILLONES, etc.
Por favor, ten precaución antes de proceder con la configuración de la tabla.
La única otra alternativa (a modificar la tabla) que se me ocurre sería ¡escribir tu propio módulo de función!
o revisa el siguiente programa
FUNCTION Z_FI_AMT_WRDS_CONVERT .
*"----
" "Interfaz Local:
*" IMPORTACIÓN
*" REFERENCIA(AMT)
*" EXPORTACIÓN
*" REFERENCIA(PALABRA) TIPO SPELL-WORD
*"----
amt_c1 = amt.
replace '.' with 'D' into amt_c1.
SEARCH amt_c1 for 'D'.
IF sy-subrc = 0.
amt_wh1 = amt_c1+0(sy-fdpos).
wrk_fdpos = sy-fdpos + 1.
amt_dc1 = amt_c1+wrk_fdpos(2).
ELSE.
amt_wh1 = amt_c1.
amt_dc1 = '00'.
ENDIF.
amtnmr = amt_wh1.
amtdec = amt_dc1.
CONCATENATE amtnmr amtdec INTO amount.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTACIÓN
amount = amount
currency = 'INR'
filler = ' '
language = 'E'
IMPORTACIÓN
in_words = amountrs.
*WRITE: / 'monto en cifras: ' ,'Rs.-->', AMTNMR,'.',AMTDEC.
*WRITE: / 'Monto en PALABRAS.: ' ,' Rs.' ,AMOUNTRS-WORD,
*'Y' ,AMOUNTRS-DECWORD ,'Paisa Solamente'.
*SALTO DE LÍNEA.
CLEAR: unit1,digit1,unit2,digit2,unit3,digit3,unit4,digit4,word1,word2,
word3,word4,word.
digit1 = amtnmr+14.
unit1 = amtnmr+13.
digit2 = amtnmr+12.
unit2 = '0'.
digit3 = amtnmr+11.
unit3 = amtnmr+10.
digit4 = amtnmr+9.
unit4 = amtnmr+8.
digit5 = amtnmr+7.
unit5 = amtnmr+6.
digit6 = amtnmr+5.
unit6 = '0'.
digit7 = amtnmr+4.
unit7 = amtnmr+3.
digit8 = amtnmr+2.
unit8 = amtnmr+1.
digit9 = amtnmr.
unit9 = '0'.
*WRITE:/ 'UNIDAD9 = ' , UNIT9, 'DÍGITO9 = ', DIGIT9.
IF ( unit1 NE '0' ) OR ( digit1 NE '0' ).
SELECT SINGLE wort INTO word1 FROM t015z WHERE einh = unit1
AND ziff = digit1 AND spras = 'E'.
-
word1 = t015z-wort.
REPLACE ';' WITH '' INTO word1.
*write: / word1.
ENDIF.
IF unit2 NE '0' OR digit2 NE '0'.
SELECT SINGLE * FROM t015z WHERE einh = unit2
AND ziff = digit2 AND spras = 'E'.
word2 = t015z-w