Ver Mensaje Individual
  #5  
Viejo 28/05/09, 14:02:22
PabloGP PabloGP is offline
Junior Member
 
Fecha de Ingreso: sep 2008
Mensajes: 21
Hola, con el parametro IS_LAYOUT podemos pasarle una tabla interna informando de la apariencia del report pero no te sirve para lo que tu quieres. Prueba esto:

FORM ALV.

PERFORM ASIGNAR_VARIANTE.
...
PERFORM LAYOUT.

*- Asignación del programa.
DATA G_REPID LIKE SY-REPID.
G_REPID = SY-REPID.

*- Función alv:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PF_STATUS_SET = 'FIJA_STATUS'
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = CATALOGO
IS_LAYOUT = LAYOUT
I_SAVE = 'A'
IS_VARIANT = I_VARIANT

IT_SORT = I_SORT
IT_EVENTS = T_EVENTOS
I_DEFAULT = 'X'
* IMPORTING
* es_exit_caused_by_user = salida
TABLES
T_OUTTAB = TI_SALIDA
EXCEPTIONS
OTHERS = 1.

ENDFORM.


Tienes que definir los parametros: IS_VARIANT e I_SAVE.

IS_VARIANT
Determina la variante de display con la que se mostrará la tabla de salida del ALV. Se le pasará una estructura definida de tipo DISVARIANT.

DATA: I_VARIANT TYPE DISVARIANT.

FORM VARIANT_BUILD .
I_VARIANT-REPORT = SY-REPID.
I_VARIANT-USERNAME = SY-UNAME.
ENDFORM.

I_SAVE
Para editar la disposición del layout.
Posibles valores (‘A’, ‘U’, 'X‘)
Mejor usa ‘A’ que seleccionará todo tipo de layouts definidos para el programa, tanto estándares como específicos de usuario.
Responder Con Cita