|
Herramientas | Buscar en Tema | Desplegado |
#11
|
|||
|
|||
Este seria la parte de un ejemplo de un alv en bloques, espero que te pueda llegar a servir.
PERFORM f_init_block. PERFORM f_cargar_layout. PERFORM f_cargar_fieldcat TABLES i_fieldcat. PERFORM f_cargar_fieldcat2 TABLES i_fieldcat2. PERFORM f_cargar_fieldcat3 TABLES i_fieldcat3. PERFORM f_cargar_eventos. PERFORM f_append_alv1. PERFORM f_append_alv3. PERFORM f_append_alv2. PERFORM f_listar_block. FORM f_cargar_fieldcat TABLES pt_fieldcat TYPE slis_t_fieldcat_alv. DATA: l_posicion TYPE i. CLEAR pt_fieldcat. REFRESH pt_fieldcat. pt_fieldcat-col_pos = l_posicion. pt_fieldcat-fieldname = 'CUIT'. pt_fieldcat-seltext_l = 'CUIT'. pt_fieldcat-tabname = 'I_SALIDA'. APPEND pt_fieldcat. CLEAR pt_fieldcat. pt_fieldcat-col_pos = l_posicion. pt_fieldcat-fieldname = 'LIFNR'. pt_fieldcat-seltext_l = 'Acreedor'. pt_fieldcat-tabname = 'I_SALIDA'. APPEND pt_fieldcat. CLEAR pt_fieldcat. pt_fieldcat-col_pos = l_posicion. pt_fieldcat-fieldname = 'BUKRS'. pt_fieldcat-tabname = 'I_SALIDA'. pt_fieldcat-seltext_l = 'Sociedad'. APPEND pt_fieldcat. CLEAR pt_fieldcat. pt_fieldcat-col_pos = l_posicion. pt_fieldcat-fieldname = 'NAME1'. pt_fieldcat-seltext_l = 'Razon Social'. pt_fieldcat-tabname = 'I_SALIDA'. APPEND pt_fieldcat. CLEAR pt_fieldcat. pt_fieldcat-col_pos = l_posicion. pt_fieldcat-fieldname = 'MENSAJE'. pt_fieldcat-tabname = 'I_SALIDA'. pt_fieldcat-seltext_l = 'Log'. APPEND pt_fieldcat. CLEAR pt_fieldcat. ENDFORM. " f_cargar_fieldcat_1 Y otros dos forms mas iguales a este... FORM f_init_block. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING i_callback_program = g_repid i_callback_pf_status_set = 'SET-PF-STATUS'. ENDFORM. "f_init_block FORM f_append_alv1. DATA l_tabname TYPE slis_tabname VALUE 'I_SALIDA'. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = i_layout it_fieldcat = i_fieldcat[] i_tabname = l_tabname it_events = i_eventos TABLES t_outtab = i_salida. 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. "f_append_alv1 FORM f_append_alv2. DATA l_tabname TYPE slis_tabname VALUE 'I_JD'. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = i_layout it_fieldcat = i_fieldcat2[] i_tabname = l_tabname it_events = i_eventos_2 TABLES t_outtab = i_jd. 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. "f_append_alv2 FORM f_listar_block. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' 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. "f_listar_block FORM f_cargar_eventos . DATA: l_eventos TYPE slis_alv_event. * CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = i_eventos. CLEAR l_eventos. READ TABLE i_eventos WITH KEY name = 'TOP_OF_PAGE' INTO l_eventos. IF sy-subrc = 0. * Asignar subrutina al evento TOP-OF-PAGE MOVE 'TOP-OF-PAGE' TO l_eventos-form. APPEND l_eventos TO i_eventos. ENDIF. CLEAR l_eventos. READ TABLE i_eventos WITH KEY name = 'TOP_OF_PAGE' INTO l_eventos. IF sy-subrc = 0. * Asignar subrutina al evento TOP-OF-PAGE BLOQUE 2 MOVE 'TOP-OF-PAGE-2' TO l_eventos-form. APPEND l_eventos TO i_eventos_2. ENDIF. CLEAR l_eventos. READ TABLE i_eventos WITH KEY name = 'TOP_OF_PAGE' INTO l_eventos. IF sy-subrc = 0. * Asignar subrutina al evento TOP-OF-PAGE BLOQUE 3 MOVE 'TOP-OF-PAGE-3' TO l_eventos-form. APPEND l_eventos TO i_eventos_3. ENDIF. ENDFORM. " f_cargar_eventos (Para este form debes hacer antes 3 top of page) FORM f_append_alv3 . DATA l_tabname TYPE slis_tabname VALUE 'I_SALIDA2'. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = i_layout it_fieldcat = i_fieldcat3[] i_tabname = l_tabname it_events = i_eventos_3 TABLES t_outtab = i_salida2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. espero que te sirva saludos...
__________________
Sebas Desarrollador ABAP. |
#12
|
||||
|
||||
Amigo...
Te recomiendo que crees una estructura con los campos que requieres de las 2 tablas y crees luego una tabla interna de esta estructura.
creas el catalogo según la estructura y le mandas esta tabla a la funcion que muestra el alv.
__________________
Atte. Marcos Carrasco... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|