《alv分组求和1》由会员分享,可在线阅读,更多相关《alv分组求和1(5页珍藏版)》请在金锄头文库上搜索。
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,
2、 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, eventc
3、at 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,
4、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 eventt
5、ab_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_
6、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 di
7、splay_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
8、 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