效果:
选择屏幕代码:
*&---------------------------------------------------------------------* *& 包含 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.