Tema: 2 Alv
Ver Mensaje Individual
  #2  
Viejo 10/10/12, 20:24:17
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 199
Solucionado!!

Bueno gente.
Mirando un std pude hacerlo.
Les paso a explicar como:

-Tenemos que cargar la tabla de Eventos con el evento 'END_OF_LIST'
FORM eventos .
DATA: ls_event TYPE slis_alv_event.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " EVENTOS


- Luego, llamo a mi ALV TREE normalmente (con la tabla de eventos cargada)
FORM listado.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
IT_EVENTS = GT_EVENTS[]
i_tabname_header = 'GT_HEADER'
i_tabname_item = 'GT_ITEM'
is_keyinfo = gs_key
TABLES
t_outtab_header = gt_header[]
t_outtab_item = gt_item[]
EXCEPTIONS
program_error = 1
OTHERS = 2 .
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " LISTADO


- Y dentro del evento que declaramos, colocamos nuestro otro ALV:
FORM end_of_list.
DATA: text(20) TYPE c,
gs_print TYPE slis_print_alv. "print settings

DATA: lr_grid TYPE REF TO cl_salv_form_layout_grid,
lr_abap TYPE REF TO cl_salv_form_abap.

CREATE OBJECT lr_grid.
CREATE OBJECT lr_abap.

lr_grid->create_label(
row = 1
column = 20
text = text-001 ). "LINEA DE TITULO QUE APARECERA ANTES DEL ALV LIST

lr_grid->create_text(
row = 1
column = 52
text = '' ).

lr_grid->add_row( ).
lr_abap->set_content( lr_grid ).
lr_abap->display( ).
PERFORM filcat2. "DEBEMOS GENERAR EL NUEVO LAYOUT
gs_layout-list_append = 'X'.
gs_print-no_new_page = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_structure_name = 'GT_ITEM'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
TABLES
t_outtab = gt_item[].
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "END_OF_LIST


- LISTO !!

En pantalla saldra primero nuestro TREE y al final aparecera nuestro LIST normal.
(use las mismas tablas ya que es una prueba solamente)



slds.
Responder Con Cita