¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo solucionar el error de sintaxis en SE38 al usar WRITE_GRID

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

Hola a todos,

Espero que algún experto aquí me ayude sin enojarse diciendo "esto es solo algo básico y simple". Lo que es simple para alguien que ya tiene experiencia puede no ser tan simple para un novato como yo.

Así que les ruego a todos que por favor me permitan publicar mi problema aquí.

Esto se refiere al siguiente código:

CNT = SY-DBCNT. "CNT TYPE C para suprimir separador de miles o coma
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.

Estoy obteniendo el siguiente error en SE38, cuando hago la verificación de sintaxis:

"coma sin dos puntos anteriores (después de COL?)" para la primera declaración Write_Grid.

Si comento esta primera línea es decir

*WRITE_GRID CNT 6 ON OFF COL_TOTAL.

, entonces obtengo el mismo error para la siguiente declaración de Write_Grid es decir.

WRITE_GRID ICON-NAME 35 ON OFF COL_KEY.

y así sucesivamente...

He probado diversas opciones durante las últimas 8 horas pero aún no logro entender dónde está el error de sintaxis.

He intentado escribir -

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

todavía nada ha ayudado y sigo obteniendo el mismo error una y otra vez.

Por favor, ayuda.

Saludos,

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

4 Respuestas

0
Cargando...

El error debería estar dentro de tu macro, la forma en que escribes la instrucción WRITE hace que el comando genere un error cuando obtiene datos para el marcador de posición. Dado que no mostraste tu código de macro, intenté crear el mío y funcionó 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.

Pero como dijo Horst, no deberías usar macros. Si no estás familiarizado con ABAP Object, aún puedes escribir una subrutina para manejar esto.

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

Hola Horst,

Gracias por responder.

Sí, de hecho es una Macro.

La Macro toma 5 parámetros (marcadores de posición &1, &2, &3, &4, &5)

(1) nombre del campo / identificador del símbolo de texto.

(2) ancho de salida en posiciones de columna.

(3) ENCENDIDO/APAGADO para INVERSO ENCENDIDO/APAGADO.

(4) ENCENDIDO/APAGADO para INTENSIFICADO ENCENDIDO/APAGADO.

(5) nombre del color (COL_KEY, COL_POSITIVE, etc.).

Entonces, el código real es como sigue:

CNT = SY-DBCNT.

WRITE_GRID CNT 6 ON OFF COL_TOTAL.

Hay 3 líneas más WRITE_GRID como estas.

Ahora estoy obteniendo un error para todas estas líneas anteriores que dice ->

coma sin dos puntos precedentes (después de COL?)

¿Puedes por favor decirme por qué estoy recibiendo este error?

¡Quizás, dado que has escrito estos códigos, puedas saber la respuesta!

Por favor, ayúdame.

Gracias y saludos,

Namrata

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

En primer lugar, ¡WRITE_GRID no es una declaración ABAP!

Es más bien una macro, con la que como principiante no deberías empezar. En algún lugar, debes tener la declaración DEFINE para esa macro. De hecho, las macros deben evitarse en la medida de lo posible.

Para empezar, quédate con las declaraciones documentadas. Presiona F1 en WRITE_GRID y verás que no está documentado.

Obtén algún tutorial o entrenamiento para aprender las declaraciones básicas.

PD: Lo curioso es que yo mismo creé una macro WRITE_GRID para alguna documentación de la Edad de Piedra hace unos 20 años y parece que todavía está por ahí...

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?