首页 > 学院 > 开发设计 > 正文

同一屏幕上两个ALV

2019-11-08 03:18:16
字体:
来源:转载
供稿:网友

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.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表