alv分组求和1
*&-*& Report YTH_TEST00029*&*&-*&*&*&-*REPORT yth_test00029.*&-*& Function: REUSE_ALV_FIELDCATALOG_MERGE *& ALV 求和*& 和 function: REUSE_ALV_GRID_DISPLAY 一起使用 *& 经典例子*& 做为一个方法使用,设置ALV的Fieldcatlog.*& 和delphi 里的dxdbgrid 的功能一样。对小类相加计算,*& 对所有的数量求和.*& 对ALV中的某一列进行分类的完成测试程序。*&-*DATA:BEGIN OF i_likp OCCURS 5, kunnr LIKE likp-kunnr, "客户号 wadat_ist LIKE likp-wadat_ist, "交货日期(发货日期) lfimg LIKE lips-lfimg, "实际已交货量 END OF i_likp .TYPE-POOLS: slis.DATA: l_events TYPE slis_t_event, gt_list_top_of_page TYPE slis_t_listheader, gs_layout TYPE slis_layout_alv, fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, eventcat TYPE slis_t_event WITH HEADER LINE, it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE, prg LIKE sy-repid.* tables disvariant:格式(外部使用)DATA: l_variant TYPE TABLE OF disvariant WITH HEADER LINE.SELECT akunnr awadat_ist blfimg FROM likp AS a INNER JOIN lips AS b ON avbeln = bvbeln INTO (i_likp-kunnr,i_likp-wadat_ist,i_likp-lfimg) WHERE AKUNNR = '0000010013' OR AKUNNR = '0000010014'. APPEND i_likp. CLEAR i_likp. ENDSELECT. PERFORM prepare_list_val. PERFORM display_val.*&-*& Form PREPARE_LIST_VAL*&-* text*-*FORM prepare_list_val. prg = sy-repid. "当前主程序 l_variant-report = sy-repid. "当前主程序 PERFORM eventtab_build CHANGING l_events. PERFORM comment_build CHANGING gt_list_top_of_page. PERFORM set_layout.ENDFORM. "prepare_list_val*&-*& Form EVENTTAB_BUILD*&-* text*-*FORM eventtab_build CHANGING p_events TYPE slis_t_event.ENDFORM. "eventtab_build*-* FORM COMMENT_BUILD *-* -> GT_TOP_OF_PAGE *-*FORM comment_build CHANGING gt_top_of_page TYPE slis_t_listheader.ENDFORM. "comment_build*&-*& Form SET_LAYOUT*&-* text*-*FORM set_layout. gs_layout-zebra = 'X'. " 行颜色 gs_layout-f2code = '&ETA'. " 双击明细 gs_layout-detail_popup = 'X'." 双击事件 gs_layout-get_selinfos = 'X'.ENDFORM. "set_layout*&-*& Form DISPLAY_VAL*&-* text*-*FORM display_val. PERFORM get_fieldcat. PERFORM get_eventcat. PERFORM get_it_sort. PERFORM start_list_val.ENDFORM. " DISPLAY_VAL*&-*& Form GET_FIELDCAT*&-* text*-*FORM get_fieldcat. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = prg i_internal_tabname = 'I_LIKP' i_inclname = prg CHANGING ct_fieldcat = fieldcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sy-subrc <> 0. WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'. ENDIF. LOOP AT fieldcat. CASE fieldcat-fieldname. WHEN 'KUNNR'. fieldcat-tabname = 'I_LIKP'. "内表名 fieldcat-key = 'X'. " Key Column关键列 fieldcat-col_pos = 1. " Position on screen屏幕位置 fieldcat-hotspot = ''. " Hotspot column热点,是否响应点击 fieldcat-seltext_s = '客户号'."设置列内容 fieldcat-ddictxt = 'S'. fieldcat-outputlen = 18. WHEN 'WADAT_IST'. fieldcat-tabname = 'I_LIKP'. fieldcat-key = ' '. " Key Column fieldcat-col_pos = 2