Vamos a crear un alvgrid en un dynpro por medio de un custom control el cual va a contener y a mostrar los datos de una consulta de datos.
Primero creamos el report:
REPORT Z_ALVGRID_CUSTOM.
Include z_alvgrid_dynpro_data. "Include con las variables
Include z_alvgrid_dynpro_func. "Include con la clase que contiene los metodos a utilizar.
Data: lv_routines Type Ref To routines, "hace referencia a la clase routines
ok_code Like sy-ucomm. "guarda los comandos de usuario
Initialization.
Start-Of-Selection.
Create Object lv_routines.
lv_routines->f_get_info( Importing e_result = gt_lfa1 ). "Busca la informacion que que va a mostrar en el alvgrig de la dynpro
If Lines( gt_lfa1 ) > 0.
lv_routines->f_display_result( ). "Muestra el resultado en el ALVGRID
Call Selection-Screen 0200.
Endif.
Include Z_PROCESS_BEFORE_OUTPUT. "Modulo PBO
Include Z_PROCESS_AFTER_INPUT. "Modulo PAI
*********Luego creamos la clase que contiene los métodos que van a ser llamados:
Class routines Definition Create Public.
Public Section.
Class-Methods:
contructor,
f_get_info Exporting e_result Type ty_lfa1,
f_display_result.
Private Section.
Class-Data:
lv_exception Type Ref To cx_root,
lv_exception_text Type string.
Endclass.
Class routines Implementation.
Method contructor.
Endmethod.
Method f_get_info.
Try.
Select * Into Corresponding Fields Of Table e_result From LFA1. " Up To 10 Rows.
Catch cx_root Into lv_exception.
lv_exception_text = lv_exception->get_text( ).
Message s000(fb) With lv_exception_text.
Endtry.
Endmethod.
Method f_display_result.
Data lv_repid Type sy-repid.
Try.
lv_repid = sy-repid.
"Crea el objeto de tipo cl_gui_custom_container quye hace referencia al Custom Control que se creo en el Dynpro
Create Object gv_gui_custom Exporting container_name = 'GRID_CONTROL'.
cl_salv_table=>factory( Exporting r_container = gv_gui_custom
Importing r_salv_table = gv_salv_table
Changing t_table = gt_lfa1 ).
gv_selections = gv_salv_table->get_selections( ). "Seleccion multiple de columnas
gv_selections->set_selection_mode( 2 ). "Single
gv_salv_funtions = gv_salv_table->get_functions( ).
gv_salv_funtions->set_all( abap_true ). "Funciones toolbar
gv_salv_table->display( ).
Catch cx_root Into lv_exception.
lv_exception_text = lv_exception->get_text( ).
Message s000(fb) With lv_exception_text.
Endtry.
Endmethod.
Endclass.
*******Los Modulos PAI y PBO
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'STATUS_DYNPRO'.
SET TITLEBAR 'T-01'.
ENDMODULE.
MODULE USER_COMMAND_0200 INPUT.
Data: fcode Like ok_code.
fcode = ok_code.
Clear ok_code.
Case fcode.
When 'BACK'.
Leave To Screen 0.
When 'EXIT'.
Leave To Screen 0.
When 'CANCEL'.
Leave To Screen 0.
When 'CMD'.
Message s000(fb) With 'Command User!'.
gv_salv_table->get_metadata( ).
gt_data_row = gv_selections->get_selected_rows( ).
Endcase.
ENDMODULE.
******Por ultimo les muestro como quedan la layout del dynpro y el status del mismo
No hay comentarios:
Publicar un comentario