REPORT ztest_y001.* Type-poolsTYPE-POOLS: slis.TABLES: mseg, ekbe, ekko, t024, lfa1,makt.DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.DATA: v_repid TYPE syrepid.DATA: s_layout TYPE slis_layout_alv.DATA: v_tabname TYPE slis_tabname.DATA: t_events TYPE slis_t_event.DATA: BEGIN OF wa_table , bukrs LIKE ekko-bukrs, "工厂 ebeln LIKE ekko-ebeln, "采购订单编号 ekorg LIKE ekko-ekorg, "采购组织 ekgrp LIKE ekko-ekgrp, "采购组 lifnr LIKE ekko-lifnr, "供应商帐户号 ebelp LIKE ekpo-ebelp, "采购订单行项目编号 matnr LIKE ekpo-matnr, "采购订单行项目物料号 budat LIKE ekbe-budat, "过帐日期 menge LIKE ekbe-menge, "入库数量 ernam LIKE ekbe-ernam, "创建者 etenr LIKE eket-etenr, "计划行 eindt LIKE eket-eindt, "交货日期 slfdt LIKE eket-slfdt, "相关交货日期 wemng LIKE eket-wemng, "已交货数量 banfn LIKE eket-banfn, "采购申请 END OF wa_table.DATA: it_table LIKE TABLE OF wa_table WITH HEADER LINE.DATA: BEGIN OF gw_table , mjahr LIKE mseg-mjahr, "凭证年度 mblnr LIKE mseg-mblnr, "凭证号 zeile LIKE mseg-zeile, "凭证项目 bwart LIKE mseg-bwart, "移动类型(库存管理) lgort LIKE mseg-lgort, "库存地点 menge LIKE mseg-menge, "以输入单位计的数量 meins LIKE mseg-meins, "采购订单单位 ebeln LIKE mseg-ebeln, "采购订单 budat_mkpf LIKE mseg-budat_mkpf, "入库日 END OF gw_table.DATA: gt_table LIKE TABLE OF gw_table WITH HEADER LINE..SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE b_title1 .PARAMETERS: p_bukrs LIKE ekko-bukrs OBLIGATORY DEFAULT 3500 . "公司代码SELECT-OPTIONS: s_lifnr FOR mseg-lifnr MEMORY ID lif , "供应商编号 s_ebeln FOR mseg-ebeln MEMORY ID bes , "采购订单 s_matnr FOR mseg-matnr MEMORY ID mat . "物料代码SELECTION-SCREEN END OF BLOCK block1.SELECTION-SCREEN SKip. "换行,SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE b_title2 .SELECTION-SCREEN COMMENT /2(79) comm1.SELECTION-SCREEN COMMENT /2(79) comm2.SELECTION-SCREEN COMMENT /2(79) comm3.SELECTION-SCREEN END OF BLOCK block2.*********填写屏幕上的文字INITIALIZATION. " b_title1 = '请指定选择条件'. b_title2 = '说明'. comm1 = '本报表是供应商交货及时率统计查询。'. comm2 = '最大命中数量为"0"时显示查询全部结果。'. comm3 = '没有相应权限(权限对象:ZSTPRS)的用户看到的价格信息将全为0 。'.START-OF-SELECTION. v_repid = sy-repid.* Get the fieldcatalog for the first block PERFORM get_fieldcat1 CHANGING t_fieldcatalog1.* Get the fieldcatalog for the second block PERFORM get_fieldcat2 CHANGING t_fieldcatalog2.* Get the data for the first block SELECT ekko~bukrs "工厂 ekko~ebeln "采购订单编号 ekko~ekorg "采购组织 ekko~ekgrp "采购组 ekko~lifnr "供应商帐户号 ekpo~ebelp "采购订单行项目 ekpo~matnr "采购订单行项目物料 ekbe~budat "过帐日期 ekbe~menge "入库数量 ?在工作 不具有相应字段 ekbe~ernam "创建者 eket~etenr "计划行 eket~eindt "交货日期 eket~slfdt "相关交货日期 eket~wemng "已交货数量 eket~banfn "采购申请 FROM ekko "从表里读取数据 INNER JOIN ekpo ON ekpo~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等 INNER JOIN ekbe ON ekbe~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等 INNER JOIN eket ON eket~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等 INTO CORRESPONDING FIELDS OF TABLE it_table "将查询结果放到内表里 WHERE ekko~bukrs = p_bukrs " 条件是和查询条件里的值相等 AND ekpo~matnr IN s_matnr " 条件是和查询条件里的值相等 AND ekko~ebeln IN s_ebeln. SORT it_table BY banfn . DELETE ADJACENT DUPLICATES FROM it_table COMPARING banfn.* Get the data for the second blockSELECT mjahr mblnr zeile bwart lgort meins budat_mkpf FROM mseg INTO CORRESPONDING FIELDS OF TABLE gt_table WHERE EBELN IN s_ebeln and WERKS = p_bukrs and bwart = '101'."排除不是101的行* init CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING i_callback_program = v_repid.* First block v_tabname = 'ITAB1'. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = s_layout it_fieldcat = t_fieldcatalog1 i_tabname = v_tabname it_events = t_events TABLES t_outtab = it_table.* Second block v_tabname = 'ITAB2'. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING is_layout = s_layout it_fieldcat = t_fieldcatalog2 i_tabname = v_tabname it_events = t_events TABLES t_outtab = gt_table.*Display CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' .*ENDFORM.*---------------------------------------------------------------------** FORM GET_FIELDCAT1**---------------------------------------------------------------------** Get the field catalog for the first block**---------------------------------------------------------------------*FORM get_fieldcat1 CHANGING lt_fieldcatalog TYPE slis_t_fieldcat_alv. DATA: s_fieldcatalog TYPE slis_fieldcat_alv.* Order number s_fieldcatalog-col_pos ='1'. s_fieldcatalog-fieldname = 'BUKRS'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKKO'. s_fieldcatalog-ref_fieldname = 'BUKRS'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Customer purchase order. s_fieldcatalog-col_pos = '2'. s_fieldcatalog-fieldname = 'EBELN'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKKO'. s_fieldcatalog-ref_fieldname = 'EBELN'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Creation date. s_fieldcatalog-col_pos = '3'. s_fieldcatalog-fieldname = 'EKORG'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKKO'. s_fieldcatalog-ref_fieldname = 'EKORG'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Customer s_fieldcatalog-col_pos = '4'. s_fieldcatalog-fieldname = 'EKGRP'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKKO'. s_fieldcatalog-ref_fieldname = 'EKGRP'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Customer s_fieldcatalog-col_pos = '5'. s_fieldcatalog-fieldname = 'LIFNR'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKKO'. s_fieldcatalog-ref_fieldname = 'LIFNR'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Customer s_fieldcatalog-col_pos = '6'. s_fieldcatalog-fieldname = 'EBELP'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKPO'. s_fieldcatalog-ref_fieldname = 'EBELP'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'MATNR'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKPO'. s_fieldcatalog-ref_fieldname = 'MATNR'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'BUDAT'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKBE'. s_fieldcatalog-ref_fieldname = 'BUDAT'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'MENGE'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKBE'. s_fieldcatalog-ref_fieldname = 'MENGE'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'ERNAM'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKBE'. s_fieldcatalog-ref_fieldname = 'ERNAM'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'ETENR'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKET'. s_fieldcatalog-ref_fieldname = 'ETENR'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'EINDT'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKET'. s_fieldcatalog-ref_fieldname = 'EINDT'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'SLFDT'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKET'. s_fieldcatalog-ref_fieldname = 'SLFDT'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'WEMNG'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKET'. s_fieldcatalog-ref_fieldname = 'WEMNG'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'BANFN'. s_fieldcatalog-tabname = 'IT_TABLE'. s_fieldcatalog-ref_tabname = 'EKET'. s_fieldcatalog-ref_fieldname = 'BANFN'. APPEND s_fieldcatalog TO lt_fieldcatalog.ENDFORM.*---------------------------------------------------------------------** FORM GET_FIELDCAT2 **---------------------------------------------------------------------** Get the field catalog for the second block **---------------------------------------------------------------------*FORM get_fieldcat2 CHANGING lt_fieldcatalog TYPE slis_t_fieldcat_alv. DATA: s_fieldcatalog TYPE slis_fieldcat_alv.* Order number s_fieldcatalog-col_pos = '1'. s_fieldcatalog-fieldname = 'MJAHR'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'MJAHR'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Material number s_fieldcatalog-col_pos = '2'. s_fieldcatalog-fieldname = 'MBLNR'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'MBLNR'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Net price s_fieldcatalog-col_pos = '3'. s_fieldcatalog-fieldname = 'ZEILE'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'ZEILE'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'ZEILE'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'ZEILE'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog.* Currency. s_fieldcatalog-fieldname = 'BWART'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'BWART'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'LGORT'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'LGORT'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'MENGE'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'MENGE'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'MEINS'. s_fieldcatalog-tabname = 'GT_TABLE'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'MEINS'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'EBELN'. s_fieldcatalog-tabname = 'GT_TABLEP'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'EBELN'. APPEND s_fieldcatalog TO lt_fieldcatalog. CLEAR s_fieldcatalog. s_fieldcatalog-fieldname = 'BUDAT_MKPF'. s_fieldcatalog-tabname = 'GT_TABLEP'. s_fieldcatalog-ref_tabname = 'MSEG'. s_fieldcatalog-ref_fieldname = 'BUDAT_MKPF'. APPEND s_fieldcatalog TO lt_fieldcatalog.ENDFORM.
新闻热点
疑难解答