MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 13/10/10, 10:11:42
zebalia zebalia is offline
Member
 
Fecha de Ingreso: dic 2009
Mensajes: 30
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
Responder Con Cita
  #2  
Viejo 13/10/10, 12:35:09
K-MUS K-MUS is offline
Member
 
Fecha de Ingreso: feb 2006
Localización: Capital Federal
Mensajes: 87

Busca en google cualquier ejemplo de ALV with OO (object oriented) y vas a encontrar muchos ejemplos.
Responder Con Cita
  #3  
Viejo 13/10/10, 15:45:28
Avatar de Marlon21
Marlon21 Marlon21 is offline
Junior Member
 
Fecha de Ingreso: mar 2010
Mensajes: 18
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.
Responder Con Cita
  #4  
Viejo 14/10/10, 08:58:40
zebalia zebalia is offline
Member
 
Fecha de Ingreso: dic 2009
Mensajes: 30
Muchas gracias chicos, con esto voy tirando y en principio parece que todo me funciona


Muchas gracias de nuevo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 23:08:30.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web