How to implement standard source code from SAP Note
1. Open Link : KBA/SAP Note2. Download : SAR File
3. Tcode : SNOTE
5. Enter the Note Number and Execute
REPORT z_demo_alv_sort. *---------------------------------------------------------------------* * This program lists orders (VBAK) with sort and sub-total for * * 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG) * *---------------------------------------------------------------------* TABLES : vbak. TYPE-POOLS: slis. " ALV Global types SELECT-OPTIONS : s_vkorg FOR vbak-vkorg, " Sales organization s_kunnr FOR vbak-kunnr, " Sold-to party s_vbeln FOR vbak-vbeln. " Sales document SELECTION-SCREEN : SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY. SELECTION-SCREEN END OF LINE. DATA: 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, " Document currency END OF gt_vbak. *---------------------------------------------------------------------* INITIALIZATION. v_1 = 'Maximum of records to read'. *---------------------------------------------------------------------* START-OF-SELECTION. PERFORM f_read_data. PERFORM f_display_data. *---------------------------------------------------------------------* * Form f_read_data *---------------------------------------------------------------------* FORM f_read_data. SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak FROM vbak UP TO p_max ROWS WHERE kunnr IN s_kunnr AND vbeln IN s_vbeln AND vkorg IN s_vkorg. ENDFORM. " F_READ_DATA *---------------------------------------------------------------------* * Form f_display_data *---------------------------------------------------------------------* FORM f_display_data. DEFINE m_fieldcat. add 1 to ls_fieldcat-col_pos. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_tabname = 'VBAK'. ls_fieldcat-do_sum = &2. ls_fieldcat-cfieldname = &3. append ls_fieldcat to lt_fieldcat. END-OF-DEFINITION. DEFINE m_sort. add 1 to ls_sort-spos. ls_sort-fieldname = &1. ls_sort-up = 'X'. ls_sort-subtot = &2. append ls_sort to lt_sort. END-OF-DEFINITION. DATA: ls_fieldcat TYPE slis_fieldcat_alv, lt_fieldcat TYPE slis_t_fieldcat_alv, lt_sort TYPE slis_t_sortinfo_alv, ls_sort TYPE slis_sortinfo_alv, ls_layout TYPE slis_layout_alv. m_fieldcat 'VKORG' '' ''. m_fieldcat 'KUNNR' '' ''. m_fieldcat 'VBELN' '' ''. m_fieldcat 'NETWR' 'X' 'WAERK'. m_fieldcat 'WAERK' '' ''. m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal m_sort 'VBELN' ''. " Sort by vbeln ls_layout-cell_merge = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING is_layout = ls_layout it_fieldcat = lt_fieldcat it_sort = lt_sort TABLES t_outtab = gt_vbak. ENDFORM. " F_DISPLAY_DATA
REPORT ztest123 . TABLES: usr02. parameters: p_bname LIKE usr02-bname, p_class LIKE usr02-class. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bname. PERFORM f_valuerequest_vbeln. *&---------------------------------------------------------------------* *& Form f_valuerequest_vbeln *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f_valuerequest_vbeln. DATA: BEGIN OF t_data OCCURS 1, data(20), END OF t_data. DATA: lwa_dfies TYPE dfies. data h_field_wa LIKe dfies. data h_field_tab like dfies occurs 0 with header line. data h_dselc like dselc occurs 0 with header line. SELECT * FROM usr02. t_data = usr02-bname. APPEND t_data. t_data = usr02-class. APPEND t_data. ENDSELECT. PERFORM f_fieldinfo_get USING 'USR02' 'BNAME' CHANGING h_field_wa. APPEND h_field_wa TO h_field_tab. PERFORM f_fieldinfo_get USING 'USR02' 'CLASS' CHANGING h_field_wa. APPEND h_field_wa TO h_field_tab. h_dselc-fldname = 'BNAME'. h_dselc-dyfldname = 'P_BNAME'. APPEND h_dselc. h_dselc-fldname = 'CLASS'. h_dselc-dyfldname = 'P_CLASS'. APPEND h_dselc. DATA: ld_repid LIKE sy-repid. ld_repid = sy-repid. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'P_BNAME' dynpprog = ld_repid dynpnr = '1000' dynprofield = 'P_BNAME' * multiple_choice = '' * value_org = 'S' TABLES value_tab = t_data field_tab = h_field_tab * return_tab = return_tab DYNPFLD_MAPPING = h_dselc EXCEPTIONS OTHERS = 0. ENDFORM. " f_valuerequest_vbeln *&---------------------------------------------------------------------* *& Form f_fieldinfo_get *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_0079 text * -->P_0080 text * <--P_H_FIELD_WA text *----------------------------------------------------------------------* FORM f_fieldinfo_get USING fu_tabname fu_fieldname CHANGING fwa_field_tab. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING TABNAME = fu_tabname FIELDNAME = fu_fieldname LFIELDNAME = fu_fieldname IMPORTING DFIES_WA = fwa_field_tab EXCEPTIONS NOT_FOUND = 1 INTERNAL_ERROR = 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. " f_fieldinfo_get