Avalados por :

Implementação de módulo para converter 100.000 a 1 lakh em SPELL_AMOUNT.

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

Olá pessoal,

Preciso da vossa ajuda aqui. Estou à procura de um módulo funcional que opere de forma semelhante ao SPELL_AMOUNT. O problema é que quero que a quantidade 100,000 seja escrita como 1 lakh em vez de cem mil.

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

4 Respuestas

0
Cargando...

Olá Arup,

Se você revisar a documentação do Módulo de Função, verá que a tabela T015Z deve ser personalizada para o seu idioma se o formato padrão dos valores escritos não for aceitável.

Infelizmente, os valores são armazenados apenas por idioma e não por moeda. Portanto, se você configurar a tabela para o idioma inglês, todos os usuários que fizerem login em inglês terão o mesmo formato (LAKHS, CRORES, etc.). Isso pode não ser aceitável para usuários em um país como os EUA, onde o formato preferido pode ser MILHÕES, BILHÕES, etc.

Por favor, tenha cuidado antes de prosseguir com a configuração da tabela.

A única outra alternativa (além de modificar a tabela) que consigo pensar é criar seu próprio módulo de função!

ou verifique o seguinte programa

FUNCTION Z_FI_AMT_WRDS_CONVERT .

*"----


" "Interface Local:

*" IMPORTAÇÃO

*" REFERÊNCIA(AMT)

*" EXPORTAÇÃO

*" REFERÊNCIA(PALAVRA) 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'

EXPORTAÇÃO

amount = amount

currency = 'INR'

filler = ' '

language = 'E'

IMPORTAÇÃO

in_words = amountrs.

*WRITE: / 'montante em cifras: ' ,'Rs.-->', AMTNMR,'.',AMTDEC.

*WRITE: / 'Montante em PALAVRAS.: ' ,' Rs.' ,AMOUNTRS-WORD,

*'E' ,AMOUNTRS-DECWORD ,'Paisa Apenas'.

*QUEBRA DE LINHA.

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:/ 'UNIDADE9 = ' , 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...

SIM, isso 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.

Saudações,

Rich Heilman

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

Sei que provavelmente isso não é o que você está procurando, mas não tenho certeza se você encontrará um módulo de função que faça isso por você.



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.

Saudações,

Rich Heilman

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

Olá,

Verifique isso

HR_IN_CHG_INR_WRDS -


número (preço) para palavras.

SPELL_AMOUNT -


Igual

O primeiro módulo funcional funciona da mesma maneira que você deseja

Exemplo

HR_IN_CHG_INR_WRDS
Importing
   AMT_IN_NUM  = '100000'
Exporting
  AMT_IN_WORDS = ans

ans = UN LAKH Rupias

Pontos de recompensa se resolvido

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?