MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   ¿Existe alguna forma de trabajar con variables dinámicas? (foro/showthread.php?t=29791)

jtristan 29/04/09 14:02:08

¿Existe alguna forma de trabajar con variables dinámicas?
 
Hola,

tengo que recorrer 16 campos de una tabla de la forma mseg001 ... mseg016, hacer comprobaciones en estos campos y cálculos.
No quería tener que tener 16 bloques iguales dentro del programa, y no sé, si existe alguna forma, de trabajar con una variables a la que le pase la tabla-campo y que me funcione.
Algo así:
DO 16 TIMES.
index = sy-index.
IF sy-index < 10.
cadena = 't_docmateriales-meg00'.
ELSE.
cadena = 't_docmateriales-meg0'.
ENDIF.
CONCATENATE cadena index INTO campo.

IF ( campo ) IS NOT INITIAL.
cantidad = cantidad + ( campo ).
ENDIF.
ENDDO.

Muchas gracias.
Un saludo.

Mauricio Hidalgo 29/04/09 17:35:38

Seria algo como esto: lo que está entre {} corresponde a tus estructuras de datos.

Saludos


data cont(3) type N.
data campo(16) type C.
data cantidad like {tu_tabla}-meg001.
field-symbols <valor> type any.

loop at {tu_tabla} into {wa_tabla}.
cont = 1.
do 16 times.
concatenate 'MEG' cont into campo.
assign component campo of structure {wa_tabla} to <valor>.
if sy-subrc eq 0.
cantidad = cantidad + <valor>.
endif.
cont = cont + 1.
enddo.
endloop.

jtristan 30/04/09 06:19:25

Muchísimas gracias.
Con este código la verdad que además de ahorrarme muchas líneas dejo el programa mucho más limpio.

Un saludo.


Husos Horarios son GMT. La hora en este momento es 06:47:49.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web