多维度查询多个子屏幕

效果:

选择屏幕代码:

*&---------------------------------------------------------------------*
*& 包含               ZMMR0070_TOP
*&---------------------------------------------------------------------*

TABLES: ekko,ekpo,
        vbak,vbap,
        likp,lips,
        mara,
        sscrfields.


**按采购订单 查询输出字段
TYPES:BEGIN OF ty_po,

        sel     TYPE sy-tabix,   "序号
        bukrs   TYPE ekpo-bukrs,     "公司代码
        lifnr   TYPE ekko-lifnr,     "供应商
        ekorg   TYPE ekko-ekorg,     "采购组织
        werks   TYPE ekpo-werks,     "工厂
        bsart      TYPE ekko-bsart,     "单据类型
        batxt   TYPE t161t-batxt,    "单据类型描述
        ebeln   TYPE ekpo-ebeln,     "订单编号
        ebelp   TYPE ekpo-ebelp,     "行项目编号
        matnr   TYPE ekpo-matnr,     "商品编码
        maktx   TYPE makt-maktx,     "商品描述
        zbzgg      TYPE zmmt0001-zbzgg, "包装规格
        ztym    TYPE zmmt0001-ztym,  "通用名
        menge   TYPE ekpo-menge,     "订单数量
        meins   TYPE ekpo-meins,     "订单单位
        netpr   TYPE ekpo-netpr,     "订单价格(未税)
        zhsdj   TYPE ekpo-netpr,     "订单价格(含税)
        netwr      TYPE ekpo-netwr,     "订单金额(未税)
        zhsje   TYPE ekpo-netwr,     "订单金额(含税)
        peinh      TYPE ekpo-peinh,     "价格单位
        zzyjhsl TYPE ekpo-menge,     "已转交货单数量
        zwzjhsl TYPE ekpo-menge,     "未转交货单数量
        zfhsl   TYPE ekpo-menge,     "发货数量
        zwfsl   TYPE ekpo-menge,     "未发货数量
        vgpos   TYPE lips-vgpos,
        mwskz   TYPE ekpo-mwskz,     "税码
        kbetr   TYPE kbetr,

        zkpsl   TYPE ekpo-menge,     "已开票数量
        zwkpsl  TYPE ekpo-menge,     "未开票数量
        zkpje   TYPE ekpo-menge,     "已开票金额

      END OF ty_po.
DATA: gt_po TYPE STANDARD TABLE OF ty_po,
      gs_po TYPE ty_po.

**按销售订单 查询输出字段
TYPES:BEGIN OF ty_so,

        sel     TYPE sy-tabix,    "序号
        vkorg   TYPE vbak-vkorg,      "销售组织
        vtweg   TYPE vbak-vtweg,      "分销渠道
        kunnr   TYPE vbak-kunnr,      "售达方
        auart   TYPE vbak-auart,      "单据类型
        bezei   TYPE tvakt-bezei,     "单据类型描述
        vbeln   TYPE vbap-vbeln,      "订单编号
        posnr   TYPE vbap-posnr,      "行项目编号
        bstkd   TYPE vbkd-bstkd,      "客户参考
        matnr   TYPE vbap-matnr,      "商品编码
        maktx   TYPE makt-maktx,      "商品描述
        zbzgg   TYPE zmmt0001-zbzgg,  "包装规格
        ztym    TYPE zmmt0001-ztym,   "通用名
        kwmeng  TYPE vbap-kwmeng,     "订单数量
        vrkme   TYPE vbap-vrkme,      "订单单位
        netpr      TYPE vbap-netpr,      "订单价格(未税)
        zhsdj   TYPE vbap-netpr,      "订单价格(含税)
        netwr   TYPE vbap-netwr,      "订单金额(未税)
        zhsje   TYPE vbap-netpr,      "订单金额(含税)
        kpein   TYPE vbap-kpein,      "价格单位
        zzyjhsl TYPE vbap-kwmeng,     "已转交货单数量
        zwzjhsl TYPE vbap-kwmeng,     "未转交货单数量
        zfhsl   TYPE vbap-kwmeng,     "发货数量
        zwfsl   TYPE vbap-kwmeng,     "未发货数量
        mwsbp   TYPE vbap-mwsbp,      "以凭证货币计的税额+

        zkpsl   TYPE vbap-kwmeng,     "已开票数量
        zwkpsl  TYPE vbap-kwmeng,     "未开票数量
        zkpje   TYPE vbap-kwmeng,     "已开票金额

      END OF ty_so.
DATA: gt_so TYPE STANDARD TABLE OF ty_so,
      gs_so TYPE ty_so.

**按交货单 输出字段
TYPES:BEGIN OF ty_dn,

        sel       TYPE sy-tabix,    "序号
        kunnr     TYPE likp-kunnr,    "送达方
        bstkd     TYPE vbkd-bstkd,    "客户参考
        vstel     TYPE likp-vstel,    "装运点
        vbeln     TYPE lips-vbeln,    "交货单号
        posnr     TYPE lips-posnr,    "行号
        vgbel     TYPE lips-vgbel,    "订单编号
        vgpos     TYPE lips-vgpos,    "行项目编号
        lfart     TYPE likp-lfart,    "交货类型
        vtext     TYPE tvlkt-vtext,   "交货类型描述
        matnr     TYPE lips-matnr,    "商品编码
        maktx     TYPE makt-maktx,    "商品描述
        zbzgg     TYPE zmmt0001-zbzgg, "包装规格
        ztym      TYPE zmmt0001-ztym,         "通用名
        werks     TYPE lips-werks,    "发货工厂
        name1     TYPE t001w-name1,           "发货工厂名称
        lgort     TYPE lips-lgort,    "发货库位
        lgobe     TYPE t001l-lgobe,           "库存地点名称
        erdat     TYPE likp-erdat,    "交货单创建日期
        wadat_ist TYPE likp-wadat_ist, "发货日期
        kwmeng    TYPE vbap-kwmeng,   "订单数量
        lfimg     TYPE lips-lfimg,    "交货单数量
        lfimg_yj  TYPE lips-lfimg,    "已发货数量
        zhsdj        TYPE lips-netpr,    "含税单价
        kpein     TYPE lips-kpein,    "价格单位EKPO-PEINH/ VBAP- KPEIN
        zhsje        TYPE lips-netpr,    "含税总价?
        fkstk     TYPE likp-fkstk,    "出具发票状态
        charg     TYPE lips-charg,    "批次号
        zscph     TYPE zmmt0007-zscph, "生产批号
        zcjbm     TYPE zmmt0007-zcjbm, "生产厂家编码
        zsccj     TYPE zmmt0007-zsccj, "生产厂家名称

        pstyv     TYPE lips-pstyv,    "项目类别+
        netpr        TYPE lips-netpr,    "净价+
        matkl     TYPE mara-matkl,    "商品类目+
        gbstk     TYPE likp-gbstk,    "凭证的总体处理状态+
        wbsta     LIKE lips-wbsta,    "货物移动状态
      END OF ty_dn.
DATA: gt_dn TYPE STANDARD TABLE OF ty_dn,
      gs_dn TYPE ty_dn.


FIELD-SYMBOLS: <fs_po> LIKE LINE OF gt_po,
               <fs_so> LIKE LINE OF gt_so,
               <fs_dn> LIKE LINE OF gt_dn.
**全局变量
DATA: g_err(1),
      g_lines  TYPE sy-tabix,
      g_tabix  TYPE sy-tabix.
**ALV参数定义
DATA: gt_fcat TYPE lvc_t_fcat,
      gs_fcat TYPE lvc_s_fcat.
DATA: g_repid   TYPE sy-repid,
      gs_layout TYPE lvc_s_layo.

**定义维度变量
DATA: g_po TYPE c,
      g_so TYPE c,
      g_dn TYPE c.
*&---------------------------------------------------------------------*
*& 包含               ZMMR0070_SEL
*&---------------------------------------------------------------------*
**PO维度
SELECTION-SCREEN:BEGIN OF SCREEN 100 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:s_ekorg  FOR ekko-ekorg MODIF ID r01 OBLIGATORY,   "采购组织
               s_bukrs  FOR ekko-bukrs OBLIGATORY MODIF ID r01 DEFAULT '3040', "公司代码
               s_lifnr  FOR ekko-lifnr MODIF ID r01,   "供应商代码
               s_ekgrp  FOR ekko-ekgrp MODIF ID r01,   "采购组
               s_werks  FOR ekpo-werks MODIF ID r01,   "DC/门店
               s_matnr  FOR ekpo-matnr,
               s_matkl  FOR mara-matkl,
               s_podat  FOR ekko-aedat OBLIGATORY.     "创建日期
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN:END OF SCREEN 100.

**SO维度
SELECTION-SCREEN:BEGIN OF SCREEN 200 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS:s_vkorg FOR vbak-vkorg OBLIGATORY,"销售组织
               s_vtweg FOR vbak-vtweg,"分销渠道
               s_vbeln FOR VBAK-vbeln,"交货单号
               s_kunag FOR vbak-kunnr,"售达方
               s_matnr2  FOR vbap-matnr,
               s_matkl2  FOR mara-matkl,
               s_sodat   FOR vbak-erdat OBLIGATORY.     "创建日期
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN:END OF SCREEN 200.

**DN维度
SELECTION-SCREEN:BEGIN OF SCREEN 300 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS:s_vstel FOR likp-vstel OBLIGATORY,"装运点
               s_dn    FOR likp-vbeln,"交货单号
               s_lfart FOR likp-lfart,"交货类型
               s_wadat FOR likp-wadat_ist,"实际货物移动日期
               s_wbstk FOR likp-wbstk,"总体货物移动状态
               s_matnr3  FOR lips-matnr,
               s_matkl3  FOR mara-matkl,
               s_dndat   FOR likp-erdat OBLIGATORY.     "创建日期
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN:END OF SCREEN 300.


SELECTION-SCREEN:BEGIN OF TABBED BLOCK mytab FOR 10 LINES, "Tab框高度5LINES.
  TAB (20) button1 USER-COMMAND push1,
  TAB (20) button2 USER-COMMAND push2,
  TAB (20) button3 USER-COMMAND push3,
  END OF BLOCK mytab.

主程序逻辑:

REPORT zmmr0070 MESSAGE-ID zmm001.

*&---------------------------------------------------------------------*
* INCLUDE
*&---------------------------------------------------------------------*
INCLUDE zmmr0070_top.
INCLUDE zmmr0070_sel.
INCLUDE zmmr0070_from.

*&---------------------------------------------------------------------*
* INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
  "数据初始化
  PERFORM frm_init_data.

*&---------------------------------------------------------------------*
*&   Event AT SELECTION-SCREEN OUTPUT
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  "修改屏幕
*  PERFORM frm_modify_screen.

*&---------------------------------------------------------------------*
*&   Event AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
  "权限检查
  PERFORM frm_authority_check.
  CASE  sy-ucomm.
    WHEN 'PUSH1'.
      mytab-dynnr = 100.
      mytab-activetab = 'BUTTON1'.
      g_po = 'X'.
      CLEAR: G_SO,G_DN.
    WHEN 'PUSH2'.
      mytab-dynnr = 200.
      mytab-activetab = 'BUTTON2'.
      g_so = 'X'.
      CLEAR: G_PO,G_DN.
    WHEN 'PUSH3'.
      mytab-dynnr = 300.
      mytab-activetab = 'BUTTON3'.
      g_dn = 'X'.
      CLEAR: G_SO,G_PO.
  ENDCASE.

*&---------------------------------------------------------------------*
*
*        MAIN PROGRAM
*
*----------------------------------------------------------------------*
START-OF-SELECTION.
  "获取数据
  PERFORM frm_get_data.
  "显示ALV
  PERFORM frm_display_alv.

猜你喜欢

转载自www.cnblogs.com/rainysblog/p/10911497.html