|
REPORT z_alv_list_block. TYPE-POOLS: slis. " ALV Global types SELECTION-SCREEN : SKIP, BEGIN OF LINE, COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY. SELECTION-SCREEN END OF LINE. DATA: * 1st Table BEGIN OF gt_kna1 OCCURS 0, " Data displayed kunnr LIKE kna1-kunnr, " Customer number ernam LIKE kna1-ernam, " Name of Person who Created erdat LIKE kna1-erdat, " Creation date name1 LIKE kna1-name1, " Name 1 END OF gt_kna1, * 2nd Table BEGIN OF gt_mara OCCURS 0, ernam LIKE mara-ernam, " Name of Person who Created matnr LIKE mara-matnr, " Material number ersda LIKE mara-e rsda, " Creation date brgew LIKE mara-brgew, " Gross weight END OF gt_mara, * 3rd Table BEGIN OF gt_vbak OCCURS 0, vkorg LIKE vbak-vkorg, " Sales organization kunnr LIKE vbak-kunnr, " Sold-to party vbeln LIKE vbak-vbeln, " Sales document netwr LIKE vbak-netwr, " Net Value of the Sales Order waerk LIKE vbak-waerk, " SD document currency END OF gt_vbak. *---------------------------------------------------------------------* INITIALIZATION. v_1 = 'Maximum of records to read'. *---------------------------------------------------------------------* START-OF-SELECTION. * Read data SELECT * FROM kna1 UP TO p_max ROWS INTO CORRESPONDING FIELDS OF TABLE gt_kna1. SELECT * FROM mara UP TO p_max ROWS INTO CORRESPONDING FIELDS OF TABLE gt_mara. SELECT * FROM vbak UP TO p_max ROWS INTO CORRESPONDING FIELDS OF TABLE gt_vbak. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING i_callback_program = sy-cprog i_callback_user_command = 'USER_COMMAND'. PERFORM list_append TABLES gt_kna1 USING '1' 'GT_KNA1'. PERFORM list_append TABLES gt_mara USING '2' 'GT_MARA'. PERFORM list_append TABLES gt_vbak USING '3' 'GT_VBAK'. PERFORM f_list_display. *---------------------------------------------------------------------* * FORM USER_COMMAND * *---------------------------------------------------------------------* FORM user_command USING i_ucomm LIKE sy-ucomm is_selfield TYPE slis_selfield. "#EC CALLED CASE i_ucomm. WHEN '&IC1'. " Pick CASE is_selfield-tabname. WHEN 'GT_MARA'. WHEN 'GT_KNA1'. WHEN 'GT_VBAK'. READ TABLE gt_vbak INDEX is_selfield-tabindex. IF sy-subrc EQ 0. * Sales order number SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln. * Display Sales Order CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. ENDIF. ENDCASE. ENDCASE. ENDFORM. " USER_COMMAND *---------------------------------------------------------------------*< /div> * Form list_append *---------------------------------------------------------------------* FORM list_append TABLES ut_table USING u_no TYPE char1 u_tabname TYPE slis_tabname. * Macro definition DEFINE m_fieldcat. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_tabname = &2. append ls_fieldcat to lt_fieldcat. END-OF-DEFINITION. DEFINE m_sort. ls_sort-fieldname = &1. ls_sort-up = 'X'. append ls_sort to lt_sort. END-OF-DEFINITION. DATA : ls_fieldcat TYPE slis_fieldcat_alv, lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog ls_sort TYPE slis_sortinfo_alv, lt_sort TYPE slis_t_sortinfo_alv. " Sort table DATA: lt_events TYPE slis_t_event, ls_event TYPE slis_alv_event, ls_layout TYPE slis_layout_alv. ls_layout-group_change_edit = 'X'. ls_layout-colwidth_optimize = 'X'. ls_layout-zebra = 'X'. ls_layout-detail_popup = 'X'. ls_layout-get_selinfos = 'X'. ls_layout-max_linesize = '200'. CASE u_no. WHEN '1'. * Build field catalog and sort table m_fieldcat 'KUNNR' 'KNA1'. m_fieldcat 'ERNAM' 'KNA1'. m_fieldcat 'ERDAT' 'KNA1'. m_fieldcat 'NAME1' 'KNA1'. m_sort 'KUNNR'. WHEN '2'. m_fieldcat 'MATNR' 'MARA'. m_fieldcat 'ERNAM' 'MARA'. m_fieldcat 'ERSDA' 'MARA'. m_fieldcat 'BRGEW' 'MARA'. m_sort 'MATNR'. WHEN '3'. m_fieldcat 'VBELN' 'VBAK'. m_fieldcat 'VKORG' 'VBAK'. m_fieldcat 'KUNNR' 'VBAK'. m_fieldcat 'NETWR' 'VBAK'. m_fieldcat 'WAERK' 'VBAK'. m_sort 'VBELN'. ENDCASE. IF u_no CA '13'. MOVE 'TOP_OF_PAGE' TO ls_event-name. CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form. APPEND ls_event TO lt_events. ELSE. MOVE 'TOP_OF_LIST' TO ls_event-name. CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form. APPEND ls_event TO lt_events. ENDIF. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING it_fieldcat = lt_fieldcat is_layout = ls_layout i_tabname = u_tabname it_events = lt_events it_sort = lt_sort * i_text = TABLES t_outtab = ut_table EXCEPTIONS program_error = 1 maximum_of_appends_reached = 2 OTHERS = 3. 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. " LIST_APPEND *---------------------------------------------------------------------* * Form f_list_display *---------------------------------------------------------------------* FORM f_list_display. DATA ls_print TYPE slis_print_alv. ls_print-no_print_selinfos = 'X'. " Display no selection infos ls_print-no_print_listinfos = 'X'. " Display no listinfos ls_print-reserve_lines = 2. " Lines reserved for end of page CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' EXPORTING i_interface_check = ' ' is_print = ls_print 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_LIST_DISPLAY *---------------------------------------------------------------------* * FORM top_of_page1 * *---------------------------------------------------------------------* FORM top_of_page1. "#EC CALLED PERFORM top_of_page. ENDFORM. *---------------------------------------------------------------------* * FORM top_of_page3 * *---------------------------------------------------------------------* FORM top_of_page3. "#EC CALLED PERFORM top_of_page. ENDFORM. *---------------------------------------------------------------------* * FORM top_of_page * *---------------------------------------------------------------------* FORM top_of_page. ULINE. WRITE : sy-uname, sy-title(56) CENTERED, sy-datum. ULINE. ENDFORM. *---------------------------------------------------------------------* * FORM top_of_list2 * *---------------------------------------------------------------------* FORM top_of_list2. "#EC CALLED WRITE 'TOP OF LIST2'. ENDFORM. ************** END OF PROGRAM Z_ALV_LIST_BLOCK ***********************ABAP Tips by: Damian Vera |
|
Fast Links:
Get help for your ABAP problems
SAP Books
More ABAP Tips
BDC Programming Tips - Sapscripts Tips - Smartforms Tips SAP Basis, ABAP Programming and Other IMG Stuff http://www.erpgreat.com All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|