¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como exibir data no formato AAAA/MM/DD no FM REUSE_ALV_GRID_DISPLAY: Guia passo a passo

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

Olá especialistas,

Estou utilizando FM REUSE_ALV_FIELDCATALOG_MERGE e o catálogo de campos é criado a partir do programa.

O catálogo de campos encontra o campo de data do programa, mas minha tabela interna foi modificada para exibir a data como AAAA/MM/DD.

Quando eu passo a tabela interna para o FM REUSE_ALV_GRID_DISPLAY, a saída exibe a data como DD/MM/AAAA, o que não é o que eu desejo.

Como posso fazer com que o FM REAUSE_ALV_GRID_DISPLAY exiba a data no formato AAAA/MM/DD que está na minha tabela de entrada?

Passei muito tempo pesquisando no SDN sobre isso, mas não consigo encontrar uma solução semelhante. No entanto, encontrei alguns exemplos de alterar o catálogo de campos. Alguém pode sugerir se este é o caminho a seguir e se devo usar o campo de máscara de edição no catálogo de campos ou se há uma maneira melhor?

Obrigado por qualquer sugestão.

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

4 Respuestas

0
Cargando...

Olá Neil,

Obrigado pela sua resposta. Não estou familiarizado com as saídas de campo, mas vou trabalhar nisso. É possível que eu tenha mais perguntas no futuro.

Olá Ruchak,

Não entendi sua recomendação. Já alterei a tabela interna para o formato necessário que estou inserindo no SAP FM REUSE_ALV_GRID_DISPLAY, mas essa FM altera a saída de volta para o formato incorreto, então não tenho uma segunda chance de alterar a saída. Por favor, explique com mais detalhes o que você quer dizer.

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

Olá,

Após executar o módulo de função, você pode modificar o campo de data da tabela interna.

data : tipo de string str.

str = it_tab-date.

"Agora concatena

concatena str+6(4) "Ano

'/'

str+3(2) " Mês

'/'

str+0(2) " dia

em str.

Isso lhe dará AAAA/MM/DD

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

Acredito que você pode usar um campo de saída para isso.

Isso significa criar um elemento de campo e um domínio no dicionário de dados, o domínio precisará ter uma saída de conversão configurada colocando uma entrada no campo 'Rotina de Conversão', por exemplo, MYDAT.

Você precisará criar dois módulos de função da seguinte maneira:

por exemplo, CONVERSION_EXIT_MYDAT_OUTPUT

e CONVERSION_EXIT_MYDAT_INPUT

Agora sua tabela interna deverá fazer referência ao elemento de dados que você criou em vez do que está utilizando atualmente. O ALV deverá automaticamente capturar as saídas de conversão e exibir a saída como deseja.

FUNCTION CONVERSION_EXIT_MYDAT_OUTPUT.

*"----


" "Interface Local:

*" IMPORTING

*" REFERÊNCIA(ENTRADA) TIPO DATS

*" EXPORTING

*" REFERÊNCIA(SAÍDA)

*"----


concatenar entrada(4) '/' entrada 4(2) '/' entrada 6

em saída.

ENDFUNCTION.

FUNCTION CONVERSION_EXIT_MYDAT_INPUT.

*"----


" "Interface Local:

*" IMPORTING

*" REFERÊNCIA(ENTRADA)

*" EXPORTING

*" REFERÊNCIA(SAÍDA) TIPO DATS

*"----


data l_string tipo cadeia.

l_string = entrada.

substituir todas as ocorrências de '/' em l_string por ' '.

saída = l_string.

ENDFUNCTION.

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

O campo é do tipo d ou dat, certo? Como resultado, a exibição é conforme a configuração do usuário. Portanto, declare o campo como char (10). Insira sua data nele sem usar WRITE (concatenar subcadeias separadas por '/').

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?