#1
|
|||
|
|||
Problema con Alv OO pasando a excel
hola a todos!
Gente, estoy haciendo un alv -el primero con objetos...- y si bien ya pude mostrar mi tabla interna, cabecera, pie de pagina y demás, ahora intento que mi tabla interna pueda pasar a un archivo Excel. Preguntas: 1.)Veo que en la barra de botones estándar de mi alv, hay un botón Excel (Ctrl+Shift-F7) pero al pulsarlo, si bien me abre un Excel embebido, me lo abre en blanco.. no debería mostrarme el contenido de mi alv? 2.)De no ser asi, alguien podría darme alguna punta sobre como llevar la tabla interna al Excel -ejemplo de código- gracias!!!!! |
#2
|
|||
|
|||
Lejos lo mejor para olvidarte de la transferencia de datos a excel y la otras funcionalidades es que tu catalogo lo obtengas a partir de una estructura de datos.
El catálogo lo obtienes con la función LVC_FIELDCATALOG_MERGE. Saludos |
#3
|
|||
|
|||
hola Mauricio, gracias por responder antes que nada!! Podrías explicar un poquito mas lo que decís? Porque en mi código, no formo el catalogo de esa manera..
Gracias de antemano!! Pego lo que tengo a continuación: "For ALV { DATA: "it_layout TYPE lvc_s_layo, gr_table TYPE REF TO cl_salv_table, gr_functions TYPE REF TO cl_salv_functions, gr_columns TYPE REF TO cl_salv_columns_table, gr_column TYPE REF TO cl_salv_column_table, gr_display TYPE REF TO cl_salv_display_settings, lr_grid TYPE REF TO cl_salv_form_layout_grid, lr_gridx TYPE REF TO cl_salv_form_layout_grid, lr_logo TYPE REF TO cl_salv_form_layout_logo, lr_label TYPE REF TO cl_salv_form_label, lr_text TYPE REF TO cl_salv_form_text, lr_footer TYPE REF TO cl_salv_form_layout_grid, ls_color TYPE lvc_s_colo. " For ALV } DATA: gv_ukurs TYPE ukurs_curr. *----------------------------------------------------------------------* * CLASS lcl_Perf_Eval DEFINITION *----------------------------------------------------------------------* CLASS lcl_perf_eval DEFINITION . PUBLIC SECTION. METHODS: constructor, fill_disp. METHODS build_fc. METHODS disp_alv. METHODS set_tol. METHODS end_of_page. ENDCLASS. "lcl_perf_eval DEFINITION DATA : obj_rep TYPE REF TO lcl_perf_eval. " Declaring Object for Class START-OF-SELECTION. CREATE OBJECT: obj_rep. " Creating Object obj_rep->fill_disp( ). " Calling class Methods obj_rep->disp_alv( ). *----------------------------------------------------------------------* * CLASS lcl_perf_eval IMPLEMENTATION *----------------------------------------------------------------------* CLASS lcl_perf_eval IMPLEMENTATION . METHOD constructor. TRY. "Calling Factory Obj of Cl_ALV_TABLE cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = gt_tablafinal ). CATCH cx_salv_msg. ENDTRY . IF gr_table IS INITIAL . MESSAGE text-002 TYPE 'I' DISPLAY LIKE 'E'. EXIT . ENDIF . ENDMETHOD. "constructor METHOD fill_disp. PERFORM buscar_datos. PERFORM armar_tabla_alv. PERFORM calcular_subtotales. ENDMETHOD. "fill_disp METHOD build_fc. INCLUDE <color>. TRY. gr_columns = gr_table->get_columns( ). gr_columns->set_optimize( abap_true ). gr_column ?= gr_columns->get_column( 'MR' ). ls_color-col = 3 . gr_column->set_color( ls_color ). gr_column->set_long_text('MR' ). gr_column->set_short_text( 'M.R.' ). gr_column->set_medium_text('M.R.' ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_columns = gr_table->get_columns( ). gr_columns->set_optimize( abap_true ). gr_column ?= gr_columns->get_column( 'TEXTO' ). ls_color-col = 3 . gr_column->set_color( ls_color ). gr_column->set_long_text('Descripción' ). gr_column->set_short_text( 'Desc.' ). gr_column->set_medium_text('Desc.' ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_column ?= gr_columns->get_column( 'POSICION' ). gr_column->set_long_text('Posición' ). gr_column->set_short_text( 'Pos' ). gr_column->set_medium_text('Posic.' ). ls_color-col = 3 . gr_column->set_color( ls_color ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_column ?= gr_columns->get_column( 'PESOACTUAL' ). gr_column->set_long_text('Peso Actual' ). gr_column->set_short_text( 'P. Act.' ). gr_column->set_medium_text('Peso Act.' ). ls_color-col = 3 . gr_column->set_color( ls_color ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_column ?= gr_columns->get_column( 'DOLARACTUAL' ). gr_column->set_long_text('Dolar Actual' ). gr_column->set_short_text( 'D. Act.' ). gr_column->set_medium_text('Dol. Act.' ). ls_color-col = 3 . gr_column->set_color( ls_color ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_column ?= gr_columns->get_column( 'PESOANTERIOR' ). gr_column->set_long_text('Peso Anterior' ). gr_column->set_short_text( 'P. Ant.' ). gr_column->set_medium_text('Peso Ant.' ). ls_color-col = 3 . gr_column->set_color( ls_color ). CATCH cx_salv_not_found. ENDTRY . TRY. gr_column ?= gr_columns->get_column( 'DOLARANTERIOR' ). gr_column->set_long_text('Dolar Anterior' ). gr_column->set_short_text( 'D. Ant.' ). gr_column->set_medium_text('Dol. Ant.' ). ls_color-col = 3 . gr_column->set_color( ls_color ). CATCH cx_salv_not_found. ENDTRY . ENDMETHOD. "build_fc METHOD disp_alv. set_tol( ). build_fc( ). end_of_page( ). gr_functions = gr_table->get_functions( ). gr_functions->set_all( abap_true ). gr_table->set_top_of_list( lr_logo ). gr_table->set_end_of_list( lr_footer ). gr_display = gr_table->get_display_settings( ). gr_display->set_striped_pattern( cl_salv_display_settings=>true ). gr_table->display( ). ENDMETHOD. "disp_alv METHOD set_tol. DATA: lv_text(30) TYPE c. CREATE OBJECT lr_grid. lr_grid->create_header_information( row = 1 column = 1 text = 'Generar Reportes MR' tooltip = 'Generar Reportes MR' ). lr_gridx = lr_grid->create_grid( row = 2 column = 1 ). lr_label = lr_gridx->create_label( row = 2 column = 1 text = 'MR1 al MR10, QR1 y AR1' tooltip = 'MR1 al MR10, QR1 y AR1' ). lr_text = lr_gridx->create_text( row = 2 column = 2 text = lv_text tooltip = lv_text ). lr_label = lr_gridx->create_label( row = 3 column = 1 text = 'Fecha:' tooltip = 'Fecha' ). lr_text = lr_gridx->create_text( row = 3 column = 2 text = lv_text tooltip = lv_text ). lr_label = lr_gridx->create_label( row = 4 column = 1 text = 'Fecha Corrida:' tooltip = 'Fecha Corrida' ). lr_text = lr_gridx->create_text( row = 4 column = 2 text = sy-datum tooltip = sy-datum ). * Create logo layout, set grid content on left and logo image on right CREATE OBJECT lr_logo. lr_logo->set_left_content( lr_grid ). ENDMETHOD. "set_Tol METHOD end_of_page. DATA: lf_lines TYPE sy-tfill . DATA: lf_flow TYPE REF TO cl_salv_form_layout_flow . CREATE OBJECT lr_footer. *--get total lines in internal table lf_lines = LINES( gt_tablafinal ). lr_label = lr_footer->create_label( row = 1 column = 1 ). lr_label->set_text( 'Información:' ). lf_flow = lr_footer->create_flow( row = 2 column = 1 ). lf_flow->create_text( text = 'Número Total de Entradas' ). lf_flow = lr_footer->create_flow( row = 2 column = 2 ). lf_flow->create_text( text = lf_lines ). ENDMETHOD. "end_of_page ENDCLASS. "lcl_perf_eval IMPLEMENTATION |
Herramientas | Buscar en Tema |
Desplegado | |
|
|