Está en la página 1de 2

Generacin de un ALV con Tabla de Salida Dinmica. 1.

- Datos Necesarios: Pool de Tipo: SLIS ALV ABAP Utilizacin de clases y otros tipos de datos Tablas Internas: dy_table TYPE REF TO data Tabla donde se almacenan los datos ifc TYPE lvc_t_fcat Tabla para determinar los campos de la tabla Variables Globales: dy_line TYPE REF TO data Lnea de la tabla de datos ld_tabix TYPE c ndice de los campos xfc TYPE lvc_s_fcat Lnea de los campos de la tabla ld_index TYPE sy-tabix ndice para determinar el campo a escribir Field Symbols: <dyn_table> TYPE STANDARD TABLE Tabla dinamica <dyn_wa> Estructura dinamica de la tabla dinamica <dyn_field> Campo de la estructura dinamica 2.- Lgica del programa para la generacin de los datos. 2.1.- Generacin del Catlogo de campos: Se rellena la tabla ifc utilizando la estructura xfc creada para ello. Es necesario rellenar los datos de la estructura: Xfc-tabname Nombre de la tabla interna de referencia Xfc-fieldname Nombre del campo (Para generar el nombre en plan dinamico aconsejo utilizar el valor de la variable SY-TABIX como referencia para el nombre) Xfc-ref_field Nombre del campo de referencia (para el tipo, tamao, textos) Xfc-ref_table Nombre de la tabla de referencia (para el tipo, tamao, textos) 2.2.- Generacin de la Tabla Dinmica: Se llama al mtodo create_dynamic_table de la clase cl_alv_table_create, utilizando como dato de entrada la tabla generada anteriormente (ifc) y como dato de salida la tabla dy_table. CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING It_fieldcatalog = ifc IMPORTING Ep_table = dy_table. Se asigna al Field Symbol la tabla completa: ASSIGN dy_table->* TO <dyn_table>. Se genera la lnea de la tabla generada: CREATE DATA dy_line LIKE LINE OF <dyn_table>. ASSIGN dy_line->* TO <dyn_wa>.

2.3.- Rellenado de datos de la Tabla Dinmica: Para rellenar los datos de la tabla dinmica se debe tener en cuenta el ndice del campo que se quiere rellenar, y se rellena de la siguiente forma: ASSIGN COMPONENT ld_index OF STRUCTURE <dyn_wa> TO <dyn_field>. IF sy-subrc EQ 0. <dyn_field> = datos a rellenar en el campo correspondiente. ENDIF. Se aaden los datos a la tabla con la siguiente sentencia: APPEND <dyn_wa> TO <dyn_table>. 3.- Visualizacin de los datos: Para visualizar el ALV solo hay que pasarle los datos de la tabla dinmica generada: CALL FUNCTION REUSE_ALV_GRID_DISPLAY EXPORTING I_callback_program = sy-repid I_structure_name = <DYN_TABLE> Is_layout = i_layout It_fieldcat = i_fieldtab TABLES T_outtab = <dyn_table> EXCEPTIONS Program_error = 1 OTHERS = 2. Adjunto hay un ejemplo de como se realizara esto, para la seleccin de materiales, con sus centros y plantas y visualizando en cada campo el stock para esa combinacin de centro y planta. Todo ello en la misma lnea.
D:\Documents and Settings\usersev\Desktop\ALV con Output dinamico.txt