Avalados por :

Implementación de módulo para convertir 100,000 a 1 lakh en SPELL_AMOUNT

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Hola chicos,

Necesito que me ayuden aquí. Necesito un módulo funcional que funcione exactamente como SPELL_AMOUNT. El problema es que quiero que la cantidad 100,000 se escriba como 1 lakh en lugar de cien mil.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

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

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sí, eso funcionará.



report zrich_0001.

data: words(50) type c.

call function 'HR_IN_CHG_INR_WRDS'
     exporting
          amt_in_num   = '100000'
     importing
          amt_in_words = words.


write:/ words.

Saludos,

Rich Heilman

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sé que esto probablemente no es lo que estás buscando, pero no estoy seguro de que encuentres un módulo de función que haga esto por ti.



report zrich_0001.

data: words type spell.

call function 'SPELL_AMOUNT'
 exporting
    amount          = '100000'
*   CURRENCY        = ' '
*   FILLER          = ' '
*   LANGUAGE        = SY-LANGU
  importing
    in_words        = words.

if words-word = 'ONE HUNDRED THOUSAND'.
  words-word = '1 LAKH'.
endif.


write:/ words-word.

Saludos,

Rich Heilman

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Revisa esto

HR_IN_CHG_INR_WRDS -


número (precio) a palabras.

SPELL_AMOUNT -


Igual

El primer módulo funcional funciona de la misma manera que deseas

Ejemplo

HR_IN_CHG_INR_WRDS
Importing
   AMT_IN_NUM  = '100000'
Exporting
  AMT_IN_WORDS = ans

ans = UN LAKH Rupias

Puntos de recompensa si se resuelve

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?