¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como corrigir o erro de sintaxe no SE38 ao usar WRITE_GRID

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

Olá a todos,

Espero que algum especialista aqui possa me ajudar sem ficar chateado dizendo "isso é apenas algo básico e simples". O que é simples para alguém que já tem experiência pode não ser tão simples para um novato como eu.

Portanto, peço a todos que por favor me permitam publicar meu problema aqui.

Isso se refere ao seguinte código:

CNT = SY-DBCNT. "CNT TYPE C para suprimir separador de miles o vírgula
WRITE_GRID CNT 6 ON OFF COL_TOTAL.
WRITE_GRID ICON-NAME 35 ON OFF COL_KEY.
WRITE_GRID ICON-ID 7 ON OFF COL_POSITIVE.
WRITE_GRID ICON+1(2) 4 ON OFF COL_HEADING.

Estou recebendo o seguinte erro no SE38 ao verificar a sintaxe:

"vírgula sem dois pontos anteriores (após COL?)" para a primeira declaração Write_Grid.

Se eu comentar esta primeira linha, ou seja

*WRITE_GRID CNT 6 ON OFF COL_TOTAL.

, então recebo o mesmo erro para a declaração Write_Grid seguinte, ou seja

WRITE_GRID ICON-NAME 35 ON OFF COL_KEY.

e assim por diante...

Tenho tentado várias opções nas últimas 8 horas, mas ainda não consigo entender onde está o erro de sintaxe.

Tentei escrever -

WRITE_GRID : CNT 6 ON OFF COL_TOTAL ,
             ICON-NAME 35 ON OFF COL_KEY,   
             ......
             ......       

ainda nada ajudou e continuo recebendo o mesmo erro repetidamente.

Por favor, ajude.

Saudações,

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

4 Respuestas

0
Cargando...

O erro deve estar dentro da sua macro, a forma como você escreve a instrução WRITE faz com que o comando gere um erro ao obter dados para o marcador de posição. Como você não mostrou seu código de macro, tentei criar o meu e funcionou normalmente:

DEFINE WRITE_GRID.
 FORMAT COLOR = &5.
 WRITE AT &2 &1 INVERSE = &3 INTENSIFIED = &4.
END-OF-DEFINITION.

DATA: CNT TYPE C LENGTH 3,
 POS TYPE i.
CONSTANTS:
 COL_TOTAL TYPE I VALUE 3,
 COL_KEY TYPE I VALUE 4,
 COL_POSITIVE TYPE I VALUE 5,
 COL_HEADING TYPE I VALUE 1,
 ON TYPE I VALUE 1,
 OFF TYPE I VALUE 0.

CNT = SY-DBCNT .
POS = 6.

WRITE_GRID CNT POS ON OFF COL_TOTAL.

Mas como Horst disse, você não deve usar macros. Se não estiver familiarizado com o ABAP Object, ainda pode escrever uma sub-rotina para lidar com isso.

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

Olá Horst,

Obrigado por responder.

Sim, na verdade é uma Macro.

A Macro leva 5 parâmetros (marcadores de posição &1, &2, &3, &4, &5)

(1) nome do campo / identificador do símbolo de texto.

(2) largura de saída em posições de coluna.

(3) LIGADO/DESLIGADO para INVERTIDO LIGADO/DESLIGADO.

(4) LIGADO/DESLIGADO para INTENSIFICADO LIGADO/DESLIGADO.

(5) nome da cor (COL_KEY, COL_POSITIVE, etc.).

Então, o código real é o seguinte:

CNT = SY-DBCNT.

WRITE_GRID CNT 6 ON OFF COL_TOTAL.

Existem mais 3 linhas WRITE_GRID como estas.

Agora estou recebendo um erro para todas essas linhas anteriores que diz ->

vírgula sem dois pontos anteriores (após COL?)

Você poderia, por favor, me dizer por que estou recebendo esse erro?

Talvez, uma vez que você escreveu esses códigos, possa saber a resposta!

Por favor, me ajude.

Obrigado e cumprimentos,

Namrata

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

Em primeiro lugar, °WRITE_GRID não é uma declaração ABAP!

É mais uma macro, com a qual como iniciante você não deve começar. Em algum lugar, você deve ter a declaração DEFINE para essa macro. Na verdade, as macros devem ser evitadas na medida do possível.

Para começar, fique com as declarações documentadas. Pressione F1 em WRITE_GRID e verá que não está documentado.

Obtenha algum tutorial ou treinamento para aprender as declarações básicas.

PD: Curiosamente, eu mesmo criei uma macro WRITE_GRID para alguma documentação da Idade da Pedra há cerca de 20 anos e parece que ainda está por aí...

https://help.sap.com/doc/saphelp_nw70ehp2/7.02.16/en-US/9f/dba23035c111d1829f0000e829fbfe/content.ht...

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?