Ver Mensaje Individual
  #2  
Viejo 25/07/14, 13:30:30
vanesamacri vanesamacri is offline
Senior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 146
Hola.

Supongamos que tenemos la siguiente estructura:

DATA wa_faglflext TYPE faglflext.


En estructura se encontrará poblada con una línea de información de la tabla faglflext. Para ir al campo deseado, realizar lo siguiente (explicado de manera muy básica):

FIELD-SYMBOL <fs> TYPE any.
DATA v_campo TYPE string.

CONCATENATE 'WA_FAGLFLEXT-HSL' p_mes INTO v_campo. (Se entiende que en p_mes va a venir el valor del mes ingresado. De esta manera, si el mes ingresado fue 10, en v_campo te va a quedar el valor WA_FAGLFLEXT-HSL10).

ASSIGN (v_campo) TO <fs>. (se asigna el valor del campo al puntero)

IF <fs> IS ASSIGNED.

Si la asignación fue correcta, en <fs> vas a tener referenciado el valor del campo HSLXX de la estructura de la tabla faglflext que sea correspondiente al mes ingresado.

Probablemente tengas que verificar, en caso de ingresar un número de mes de un dígito, agregar el cero manualmente a la hora de concatenar el valor del campo para asignarlo al puntero (por ejemplo, para que te quede HSL01 y no HSL1).

ENDIF.


Si querés evitar el uso de punteros, podés utilizar la instrucción DO... VARYING la cual te permite recorrer registros de manera horizontal. Podés jugar con el índice de la iteración del DO...ENDDO para determinar el campo que se corresponde con el número del mes ingresado en pantalla de selección.


Espero que la explicación haya sido clara.

Un saludo.
Responder Con Cita