PDA

Ver la Versión Completa : Añadir botones standars toolbar ALV OO


javi24
06/08/09, 08:46:51
Buenas,

Tengo 2 alv's orientadas a objetos en la misma dynpro de la siguiente manera (Codigo del primer alv para mostrar como la cosntuyo):

* Creating ALV Grid instance
CREATE OBJECT gr_alvgrid
EXPORTING
i_parent = gr_ccontainer
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
others = 5.

IF sy-subrc <> 0.
* Exception handling
ENDIF.

variante-report = sy-repid.

* Preparing field catalog.
PERFORM reuse_alv_fieldcatalog_merge CHANGING gt_fieldcat .

* Preparing layout structure
PERFORM prepare_layout CHANGING gs_layout .

* PERFORM exclude_tb_functions CHANGING gt_exclude.

CALL METHOD gr_alvgrid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
is_variant = variante
i_save = 'A'
i_default = 'X'
* it_toolbar_excluding = gt_exclude
CHANGING
it_outtab = i_alv4[]
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.

IF sy-subrc <> 0.
*--Exception handling
ENDIF.
CALL METHOD gr_alvgrid->set_ready_for_input
EXPORTING
i_ready_for_input = 0.

ELSE .

CALL METHOD gr_alvgrid->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.


El problema es que la toolbar que me sale no tiene los botones standarares que me hacen falta como (descargar en excel, etc...)
Me gustaria saber como añadir los botones standares que me hacen falta

He encontrado la funcion para quitarlos, pero no para añadirlos.
La funcion para quitarlos es la siguiente:

FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
DATA: ls_exclude TYPE ui_func.

ls_exclude = gr_alvgrid->mc_fc_loc_paste_new_row.
APPEND ls_exclude TO pt_exclude.

ls_exclude = gr_alvgrid->mc_fc_loc_copy.
APPEND ls_exclude TO pt_exclude.

Alguien me puede ayudar?

Muchas gracias

ballan
06/08/09, 09:43:39
Esos botones aparecen "automaticamente" cuando hay 1 campo editable en el ALV, deduzco que si no te aparecen es porque en tu ALV no hay ninguna columna editable (en el fcat tiene el campo edit con una X)

Por lo que una prueba rapida seria modificar tu catalogo y marcar el campo EDIT a una columna para ver si te lo añade, si es asi lo que podrias hacer es añadir una columna dummy a la estructura de tu ALV, ponerla como editable y marcar el campo NO_OUT del fcat para que no la muestre

javi24
06/08/09, 10:45:24
Buenas,

He probado lo que me has dicho y me continua sin aparecer.
Con que me aparezca el boton para descargar en excel sería mas qeu suficiente porque el problema es que son muchos datos los que devuelve el alv y necesito descargarlo en un excel para tratarlo.

Mirando he visto que la clase CL_GUI_ALV_GRID tiene el metodo SET_TOOLBAR_BUTTONS que podría ser para añadir botones, pero no tengo ni idea de como utilizarlo.


muchas gracias

ballan
06/08/09, 10:54:51
Pues vamos yo puedo garantizar que cuando muestro un ALV y existe una columna editable automaticamente aparecen los botones de añadir y quitar lineas, copiar, cortar, etc y tambien el boton de exportar a excel

Quiza es que al marcar el campo como editable y luego ponerle el NO_OUT el standard no añade los botones, prueba a poner en el fcat una columna con el campo EDIT marcado y ver si te los añade

Tambien comprueba que no se esten pasando datos en la exclude_tab porque a lo mejor se esta forzando a que no se muestre el boton de exportar a excel

Otra opcion seria añadir un boton mediante codigo y codificar la exportacion a excel, pero eso requeriria mas trabajo

No obstante insisto en que si hay un campo editable deberian aparecer esos botones, por lo menos mi experiencia siempre ha sido esa

Arturo Sandoval Salcedo
21/08/09, 15:18:14
Buenos dias leyendo su problema con los botones yo tengo algo parecido
necesito saber que metodo utilizar para la impresion del alv oo que hice
porq pues no lo hace solo uds pueden ayudarme con esto