#1
|
|||
|
|||
¿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. |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|