ALV OO en fondo
Buenos días,
Tengo un ALV orientado a objetos, en el cual le pongo una variante de visualización y cuando lo ejecuto on-line, sale perfecto, filtrando por la variable. Pero si lo ejecuto en fondo, cuando veo la Spool me salen unas rayas muy feas y solo veo la cabecera del listado. ¿Alguien me puede echar una mano?
Pongo el código que tengo:
* 0.- Declaracion de variables
*--------------------------------------------------------------------*
DATA: it_filas TYPE lvc_t_roid,
ld_fila TYPE int4,
lr_filas TYPE lvc_s_roid,
lit_filas TYPE lvc_t_roid.
DATA lr_variant TYPE disvariant.
* 1.- Logica
*--------------------------------------------------------------------*
lr_variant-report = sy-cprog.
lr_variant-variant = p_vari.
IF gr_container_03 IS INITIAL.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
* Crear el contenedor en el control de la pantalla
CREATE OBJECT gr_container_03
EXPORTING
container_name = 'CONTAINER_03'.
* Crear el ALV en el container
CREATE OBJECT gr_grid_03
EXPORTING
i_parent = gr_container_03.
ELSE.
* Creamos el contenedor en el que se visualizará
* el ALV con los datos de los registros de mercancías
* seleccionados
CREATE OBJECT gr_grid_03
EXPORTING
i_parent = g_d_container_alv_03.
ENDIF.
ENDIF.
* Configurar layout
PERFORM f_gen_layout_02.
* Configurar fieldcatalog
PERFORM f_gen_fieldcatalog_02.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
CREATE OBJECT gr_event_handler_01.
SET HANDLER gr_event_handler_01->handle_hotspot_click_alv_1 FOR gr_grid_03.
* Crear e activar eventos para el ALV
CALL METHOD gr_grid_03->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD gr_grid_03->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
ENDIF.
* Cargar el alv
CALL METHOD gr_grid_03->set_table_for_first_display
EXPORTING
i_buffer_active = 'X'
is_layout = gr_layout_03
i_save = 'A'
is_variant = lr_variant
CHANGING
it_outtab = git_pos_pedido
it_fieldcatalog = git_fieldcatalog_02
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
Muchas gracias de antemano a todo el que me pueda ayudar.
|