Buenas tardes a todos amigos, quiero pedirles ayuda, estoy necesitando hacer un reporte con mas de dos alv, la verdad que no tengo idea de como hacerlo, por favor si alguien tiene un ejemplo de como hacerlo, puede colgarlo para saber mas o menos como se hace...muchas gracias a todos...este tema lo necesito solucionar con rapidez, se los agradezco!
Dos o mas en un mismo reporte
Colapsar
X
-
¿Pero como necesitás organizarlo? ¿En "serie" o "paralelo"?
Si es uno después de otro, el segundo lo disparás en el UCOMM del mismo modo que al primero. Si no con la función REUSE_ALV_BLOCK_LIST_DISPLAY podés sacar varios al mismo tiempo. Decíme cómo pensás y te subo algún ejemplo. -
Muchas gracias....se tienen que ver en la misma pantalla pero separados...te agradeceria si subis un ejemplo que me clarifique...Originalmente publicado por Abaunus¿Pero como necesitás organizarlo? ¿En "serie" o "paralelo"?
Si es uno después de otro, el segundo lo disparás en el UCOMM del mismo modo que al primero. Si no con la función REUSE_ALV_BLOCK_LIST_DISPLAY podés sacar varios al mismo tiempo. Decíme cómo pensás y te subo algún ejemplo.
Saludos!!El mundo es Redondo y de Ricota......Comentario
-
Es básicamente como un ALV con funciones normal.
Declarás:
Bueno, completás cada tabla, y pasamos a las funciones.Código:TYPE-POOLS SLIS. CONSTANTS C_X VALUE 'X'. DATA: G_REPID TYPE SY-REPID, G_LAYOUT TYPE SLIS_LAYOUT_ALV, GS_LINE TYPE SLIS_LISTHEADER, WA_SALIDA1 TYPE tabla1, WA_SALIDA2 TYPE tabla2, l_tabname1 TYPE slis_tabname VALUE 'I_SALIDA1', l_tabname2 TYPE slis_tabname VALUE 'I_SALIDA2'. DATA: l_eventos TYPE slis_alv_event, lv_estruct TYPE dd02l-tabname. DATA: i_fieldcat1 TYPE slis_t_fieldcat_alv, i_fieldcat2 TYPE slis_t_fieldcat_alv, i_eventos1 TYPE TABLE OF slis_alv_event, i_eventos_2 TYPE TABLE OF slis_alv_event, GT_TOP_OF_PAGE_1 TYPE SLIS_T_LISTHEADER, GT_TOP_OF_PAGE_2 TYPE SLIS_T_LISTHEADER, I_SALIDA1 TYPE TABLE OF tabla1, I_SALIDA2 TYPE TABLE OF tabla2.
Primero tenés que "abrir":
Código:CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING i_callback_program = G_REPID i_callback_pf_status_set = 'SET-PF-STATUS' I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'.
Después, para cada ALV, tenés que ejecutar la función:
Cada bloque de ALV con su layout, fieldcat (obligatorios) y eventos.Código:CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = g_layout it_fieldcat = i_fieldcat1 i_tabname = l_tabname1 it_events = i_eventos1 TABLES t_outtab = i_salida1.
Y al final:
Código:CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' EXCEPTIONS program_error = 1 OTHERS = 2.
En cada tabla de eventos podés cargar un Top_of_page para cada ALV. Por ejemplo:
Y después:Código:CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = i_eventos1. CLEAR l_eventos. READ TABLE i_eventos1 WITH KEY name = 'TOP_OF_PAGE' INTO l_eventos. IF sy-subrc = 0. MOVE 'F_TOP_OF_PAGE_1' TO l_eventos-form. MODIFY i_eventos1 INDEX sy-tabix FROM l_eventos. ENDIF.
Y así con los demás.Código:FORM F_TOP_OF_PAGE_1. IF GT_TOP_OF_PAGE_1[] IS INITIAL. CLEAR GS_LINE. GS_LINE-TYP = 'H'. CONCATENATE 'FECHA:' SY-DATUM INTO GS_LINE-INFO SEPARATED BY SPACE. APPEND GS_LINE TO GT_TOP_OF_PAGE_1. CLEAR GS_LINE. GS_LINE-TYP = 'H'. CONCATENATE 'HORA:' SY-UZEIT INTO GS_LINE-INFO SEPARATED BY SPACE. APPEND GS_LINE TO GT_TOP_OF_PAGE_1. ENDIF. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = GT_TOP_OF_PAGE_1. ENDFORM. "TOP_OF_PAGE_1
Creo que no me olvidé nada. Espero te sirva.
Saludos.Comentario
-
El ejemplo que me pasaste me sirvio a la perfeccion! Te lo agradezco....ahora que me saque este tema de encima quisiera saber si se pueden hacer varios ALV en un mismo reporte pero que sean jerarquicos cada uno...se puede? Muchas gracias por el apoyo...El mundo es Redondo y de Ricota......Comentario
Comentario