#1
|
|||
|
|||
ALV en la screen de una dynpro
Hola buenas.
Vereis, necesito hacer un ALV en una screen de una dynpro y no se muy bien como hacerlo. Me imagino que tengo que crear un "Control Custom" donde insertar mi ALV. El problema es que no se como y donde crear este ALV. El ALV me imagino que se creará en el PBO. He puesto lo siguiente: IF my_container IS INITIAL. CREATE OBJECT my_alv_grid EXPORTING i_parent = my_container EXCEPTIONS OTHERS = 1. ENDIF. Ahora, lo que no se, es donde crear mi catálogo y donde poner lo siguiente: CALL METHOD my_alv_grid->set_table_for_first_display EXPORTING i_structure_name = 'ZTABLA' (Este es el nombre del Custom Controler??) "is_layout = is_layout CHANGING it_outtab = Mi_tabla. EXCEPTIONS OTHERS = 4. Muchas gracias |
#2
|
|||
|
|||
Busca en google cualquier ejemplo de ALV with OO (object oriented) y vas a encontrar muchos ejemplos. |
#3
|
||||
|
||||
Ejemplo
Hola te paso un ejemplo de la parte que deseas, cualquier consulta solo escribes, Saludos XD!!
CALL SCREEN 100. *Aquí creas tu control custom *En el screen estos son los procesos PROCESS BEFORE OUTPUT. MODULE status_0100. MODULE act_data. * PROCESS AFTER INPUT. MODULE user_command_0100. MODULE status_0100 OUTPUT. SET PF-STATUS '0100'. Activas tus button de back canc exit SET TITLEBAR '0100'. Titulo de tu Reporte ENDMODULE. " STATUS_0100 OUTPUT MODULE act_data OUTPUT. IF go_custom_container IS INITIAL. CREATE OBJECT go_custom_container EXPORTING container_name = gv_container. ENDIF. *Top of Page CREATE OBJECT o_dyndoc_id EXPORTING style = 'ALV_GRID'. “Nombre de tu control custom IF go_grid_data IS INITIAL. CREATE OBJECT go_splitter EXPORTING parent = go_custom_container rows = 2 columns = 1. CALL METHOD go_splitter->get_container EXPORTING row = 2 column = 1 RECEIVING container = go_parent_grid. CREATE OBJECT go_grid_data EXPORTING i_parent = go_parent_grid. *Top of Page CALL METHOD go_splitter->get_container EXPORTING row = 1 column = 1 RECEIVING container = go_parent_top. *Tamaño top of page CALL METHOD go_splitter->set_row_height EXPORTING id = 1 height = 16. CREATE OBJECT go_event_receiver. SET HANDLER go_event_receiver->handle_double_click FOR go_grid_data. “Evento doble click * SET HANDLER go_event_receiver->handle_data_changed FOR go_grid_data. SET HANDLER go_event_receiver->handle_top_of_page FOR go_grid_data. “Evento Topo f page *Excluir Botonera del ALV PERFORM exclude_button. “Es para excluir botones del alv ls_layout-sel_mode = 'A'. wa_disvar_rcr-report = sy-repid. CALL METHOD go_grid_data->set_table_for_first_display EXPORTING is_variant = wa_disvar_rcr i_save = 'A' i_default = 'A' it_toolbar_excluding = gt_exclude is_layout = ls_layout CHANGING it_fieldcatalog = gt_fieldcat it_outtab = gt_data[]. CALL METHOD go_grid_data->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter. CALL METHOD go_grid_data->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified EXCEPTIONS OTHERS = 2. CALL METHOD o_dyndoc_id->initialize_document EXPORTING background_color = cl_dd_area=>col_textarea. CALL METHOD go_grid_data->list_processing_events EXPORTING i_event_name = 'TOP_OF_PAGE' i_dyndoc_id = o_dyndoc_id. ELSE. gt_stable-row = 'X'. gt_stable-col = 'X'. CALL METHOD go_grid_data->refresh_table_display EXPORTING is_stable = gt_stable i_soft_refresh = 'X'. ENDIF. ENDMODULE. MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'BACK' OR 'EXIT' OR 'CANC'. CLEAR sy-ucomm. SET SCREEN 0. LEAVE SCREEN. ENDCASE. ENDMODULE. FORM exclude_button . DATA: ls_exclude TYPE ui_func. REFRESH: gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_check. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_mb_variant. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_mb_export. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_info. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_find. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_mb_view. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_filter. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_delete_filter. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_refresh. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_subtot. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_mb_sum. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_print. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_graph. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_help. APPEND ls_exclude TO gt_exclude. ls_exclude = cl_gui_alv_grid=>mc_fc_detail. APPEND ls_exclude TO gt_exclude. ENDFORM. |
#4
|
|||
|
|||
Muchas gracias chicos, con esto voy tirando y en principio parece que todo me funciona
Muchas gracias de nuevo |
Herramientas | Buscar en Tema |
Desplegado | |
|
|