PDA

Ver la Versión Completa : Alv Con Field-symbols Y Tabla Generica--aprovechen


jramos_torres
09/01/09, 23:47:07
Estimados partners.
Aqui les va esta pequeña aportacion .Con este ejemplo podran enteder la
tecnica de los field symbols y tablas genericas.Ademas de darles ciertas
ideas de manipulacion de tablas.Por ejemplo pueden crear una funcion
donde puedan llamarla para consultar cualesquier tabla y asi evitar programacion de mas.Bueno mucha bla bla hay les va.

REPORT zveotabla.

DATA: pv_tabla TYPE dd02l-tabname,
generic_table TYPE REF TO data,
generic_line TYPE REF TO data.

Data: ok_code LIKE sy-ucomm,
g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
grid1 TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container.

FIELD-SYMBOLS: <table> TYPE ANY TABLE,
<xtable> TYPE STANDARD TABLE,
<xitab> TYPE ANY TABLE,
<wa> TYPE ANY,
<field> TYPE ANY.

PARAMETERS: xtabla TYPE string.

START-OF-SELECTION.

CONDENSE xtabla.
pv_tabla = xTabla.

CREATE DATA generic_table TYPE STANDARD TABLE OF (pv_tabla).
ASSIGN generic_table->* TO <table>.

* Get data
SELECT *
INTO TABLE <table>
FROM (pv_tabla).

CALL SCREEN 100.

*---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*
MODULE PBO OUTPUT.

SET PF-STATUS 'MAIN100'.

IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container.

CREATE OBJECT grid1
EXPORTING
i_parent = g_custom_container.

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = pv_tabla
CHANGING
it_outtab = <table>.
ENDIF.

ENDMODULE.

*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*
MODULE PAI INPUT.

* to react on oi_custom_events:
CALL METHOD cl_gui_cfw=>dispatch.

CASE ok_code.
WHEN 'EXIT'.
PERFORM exit_program.
WHEN others.
* do nothing
ENDCASE.

CLEAR ok_code.

ENDMODULE.

*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
FORM exit_program.

LEAVE PROGRAM.

ENDFORM.

Editado: 11.01.2009 por DavidXD_XD

DavidXD_XD
11/01/09, 19:41:26
Hola .. muy buen aporte para dar una vision general del poder de los field-symbols y la creacion de datos dinamica ... solo le cambie un poco la forma del codigo para que se viera mejor :p.

Ademas de agregar para que funcione el codigo se debera crear un dynpro 100 en el cual se crea un custom container con el nombre de BCALV_GRID_DEMO_0100_CONT1 y para finalizar se crea un Status GUI con un solo boton de EXIT para poder salir del programa (LEAVE PROGRAM), aunq yo sugiero usar el LEAVE TO SCREEN 0 para poder retornar a la pantalla de seleccion en caso sea un reporte .... espero que el aporte de jramos_torres sirva de ayuda a muchos ... Slds :D