PDA

Ver la Versión Completa : Imprimir varios custom controls en una dynpro


agv1976
31/08/10, 15:18:14
Hola a todos,

Tengo 4 custom container en una misma dynpro, necesitaria imprimir la pantalla entera pero solo me imprime el primer control, alguien sabe como hacerlo?

Fabian leonardo velasquez
01/09/10, 18:16:49
Si tienes 4 custom que quieres mostrar al mismo tiempo es claro que debes crear 4 objetos que lo controlen y estos a su vez ubicarlos en 4 subscreen

es decir necesitas.
1 Dynpro normal ( en este screen painter colocas los 4 subscreen )
desde este dynpro se controlan los demas
no olvides invocarlos en el PBO y el PAI.

4 Subscreen ( en cada uno colocas un custom y cada uno lo llamas distinto)
4 custom
4 objetos

pd( esto es un ajemple de como lo haces en POO, no olvides generar el cataolo de datos para cada uno.)

container = 'CONTENIDO'.
if go_container is initial.
create object go_container
exporting
container_name = container
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
others = 5.
if sy-subrc eq 0.
create object go_cl_alvgrid
exporting
i_parent = go_container.
* Invocar a los metodos del objeto go_cl_alvgrid.
call method go_cl_alvgrid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
call method go_cl_alvgrid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
call method go_cl_alvgrid->set_ready_for_input
exporting
i_ready_for_input = 1.
perform genera_catalogo tables gtd_fieldcat.

create object go_event.
set handler go_event->handle_data_changed for go_cl_alvgrid.
set handler go_event->handle_on_f4 for go_cl_alvgrid.
set handler go_event->handle_hotspot_click for go_cl_alvgrid.

call method go_cl_alvgrid->set_table_for_first_display
exporting
is_layout = gst_layout
i_save = 'A'
changing
it_outtab = it_mostrar
it_fieldcatalog = gtd_fieldcat.

perform switch_edit_mode.

endif.
else.
mod_line-row = 'X'.
call method go_cl_alvgrid->refresh_table_display
exporting
is_stable = mod_line
i_soft_refresh = 'X'.

data cambio type c.
call method go_cl_alvgrid->check_changed_data
importing
e_valid = cambio.

endif.


Espero te ayude cualquier cosa my skype es fleonardo26, hay otra formaa de hacerlo con un solo dynpro pero hay que utilizar un objeto CL_GUI_SPLITTER_CONTAINER mas o menos asi se llaman ahora no recuerdo pero si los necesitas me avisas.