MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   2 Alv (foro/showthread.php?t=64704)

SAPING 10/10/12 15:25:19

2 Alv
 
Hola.
Estoy buscando la manera de mostrar 2 ALV LIST en pantalla.
Estuve revisando y veo que hay funciones para hacerlo, el problema es que mi primer ALV es un TREE y las funciones BLOCK, por lo que vi, trabajan con LIST comunes.

Entonces, tengo un ALV LIST TREE y debajo tengo que mostrar un LIST comun.
Se puede???
Como ??

Gracias.

SAPING 10/10/12 20:24:17

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)

:D

slds.


Husos Horarios son GMT. La hora en este momento es 01:27:13.

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