SAP 让库龄表飞起来!

实现业务:计算财务库龄表从查询日期起到过去60个月之间的库龄数量/金额。
计算难点:SAP涉及到MSEG物料表,分摊库龄会特别慢,库龄表更是SAP的痛点。
实现思路: 批次物料可以从MCHB等表中读取库龄数,减少MSEG访问量。
承接需求:远程承接SAP各模块开发,紧急开发需求等,TEL:18620850523.

&---------------------------------------------------------------------*
*& Report  ZFIR005
*&
*&---------------------------------------------------------------------*
*& Programe ID: ZFIR005
*& Programe Discription: 财务库龄表
*& Change Date: 2015/1/15
*& Change By:  **有希望的草根,QQ:654563691**
*& Version: Ver0.1
*&---------------------------------------------------------------------*

REPORT  ZFIR005 NO STANDARD PAGE HEADING.

TYPE-POOLS: SLIS.
*&---------------------------------------------------------------------*
*&     TYPES DEFINITION
*&---------------------------------------------------------------------*
* 物料数据
TYPES: BEGIN OF TP_MATNR,
        WERKS  TYPE MARD-WERKS,  "工厂
        MATNR  TYPE MARD-MATNR,  "物料号
        LGORT  TYPE MARD-LGORT,  "库存地点
        MAKTX  TYPE MAKT-MAKTX,  "物料描述
        PRCTR  TYPE MARC-PRCTR,  "利润中心
        MATKL  TYPE MARA-MATKL,  "物料组
        XCHPF  TYPE MARA-XCHPF,  "批次管理需求的标识
        MENGE  TYPE BSEG-MENGE,  "数量
        MEINS  TYPE MARA-MEINS,  "数量单位
       END OF TP_MATNR.
* 物料总数量
TYPES: BEGIN OF TP_QTY,
        WERKS  TYPE BSEG-WERKS,  "工厂
        MATNR  TYPE BSEG-MATNR,  "物料号
        MENGE  TYPE BSEG-MENGE,  "数量
        DMBTR  TYPE BSEG-DMBTR,  "按本位币计的金额
       END OF TP_QTY.
* 物料库存数据
TYPES: BEGIN OF TP_DATA,
        WERKS  TYPE MCHB-WERKS, "工厂
        MATNR  TYPE MCHB-MATNR, "物料号
        LGORT  TYPE MCHB-LGORT, "库存地点
        CHARG  TYPE MCHB-CHARG, "批号
        LFGJA  TYPE MCHB-LFGJA, "当前期间的会计年度
        LFMON  TYPE MCHB-LFMON, "当前期间
        SDATE  TYPE SY-DATUM,   "当前日期
        CLABS  TYPE MCHB-CLABS, "非限制使用的估价的库存
        CUMLM  TYPE MCHB-CUMLM, "在运库存
        CINSM  TYPE MCHB-CINSM, "质量检验中的库存
        SOBKZ  TYPE MSKA-SOBKZ, "特殊库存标识
        VBELN  TYPE MSKA-VBELN, "销售和分销凭证号
        POSNR  TYPE MSKA-POSNR, "销售和分销凭证的项目号
        XCHPF  TYPE MARA-XCHPF, "批次管理标志
        MENGE  TYPE MSEG-MENGE, "数量
        LWEDT  TYPE MCH1-LWEDT, "收货日期
       END OF TP_DATA.
* 物料移动数据
TYPES: BEGIN OF TP_MSEG,
        BUKRS  TYPE MSEG-BUKRS,  "公司代码
        MBLNR  TYPE MSEG-MBLNR,  "物料凭证编号
        MJAHR  TYPE MSEG-MJAHR,  "物料凭证年度
        ZEILE  TYPE MSEG-ZEILE,  "物料凭证中的项目
        MATNR  TYPE MSEG-MATNR,  "物料号
        WERKS  TYPE MSEG-WERKS,  "工厂
        LGORT  TYPE MSEG-LGORT,  "库存地点
        BWART  TYPE MSEG-BWART,  "移动类型
        SHKZG  TYPE MSEG-SHKZG,  "借贷标识
        MENGE  TYPE MSEG-MENGE,  "数量
        EXBWR  TYPE MSEG-EXBWR,  "以本地货币计量的过帐金额
        CHARG  TYPE MSEG-CHARG,  "批号
        WAERS  TYPE MSEG-WAERS,  "价格单位
        BUDAT  TYPE MKPF-BUDAT,  "凭证中的过帐日期
        LWEDT  TYPE MCH1-LWEDT,  "最近的收货日期
       END OF TP_MSEG.
* 会计凭证数据
TYPES: BEGIN OF TP_BSEG,
        BUKRS  TYPE BSEG-BUKRS,  "公司代码
        WERKS  TYPE BSEG-WERKS,  "工厂
        BELNR  TYPE BSEG-BELNR,  "会计凭证编号
        GJAHR  TYPE BSEG-GJAHR,  "会计年度
        BUZEI  TYPE BSEG-BUZEI,  "项目号
        SHKZG  TYPE BSEG-SHKZG,  "借方/贷方标识
        DMBTR  TYPE BSEG-DMBTR,  "按本位币计的金额
        MATNR  TYPE BSEG-MATNR,  "物料号
        MENGE  TYPE BSEG-MENGE,  "数量
        MEINS  TYPE BSEG-MEINS,  "数量单位
        BUDAT  TYPE BKPF-BUDAT,  "凭证中的过帐日期
        BLART  TYPE BKPF-BLART,  "凭证类型
        AWTYP  TYPE BKPF-AWTYP,  "参考交易
        AWKEY  TYPE BKPF-AWKEY,  "字段参考关键
       END OF TP_BSEG.
* ALV 输出字段
TYPES: BEGIN OF TP_ALV,
        CHK    TYPE CHAR1,       "CHECBOX
        WERKS  TYPE MARD-WERKS,  "工厂
        LGORT  TYPE MARD-LGORT,  "库存地点
        ZYEAR  TYPE CHAR4,       "运行年份
        ZMONTH TYPE CHAR2,       "运行月份
        MATNR  TYPE MARD-MATNR,  "物料号
        MAKTX  TYPE MAKT-MAKTX,  "物料描述
        MATKL  TYPE MARA-MATKL,  "物料组
        PRCTR  TYPE MARC-PRCTR,  "利润中心
        PRTXT  TYPE CEPCT-MCTXT, "利润中心描述
        XCHPF  TYPE MARA-XCHPF,  "批次管理
        LDATE1 TYPE SY-DATUM,    "最后异动日期
        LDATE2 TYPE SY-DATUM,    "最后销售日期
        PRICE  TYPE MBEW-SALK3,  "单价
        SALK3  TYPE MBEW-SALK3,  "库存金额
        LBKUM1 TYPE MBEW-LBKUM,  "库存数量
        MEINS1 TYPE MARA-MEINS,  "数量单位
        LBKUM2 TYPE MBEW-LBKUM,  "财务库存数量
        MEINS2 TYPE MARA-MEINS,  "财务数量单位
        QTY3M  TYPE MBEW-LBKUM,  "3月以内的库龄数量
        QTY6M  TYPE MBEW-LBKUM,  "4月到6月以内的库龄数量
        QTY9M  TYPE MBEW-LBKUM,  "7月到9月以内的库龄数量
        QTY12M TYPE MBEW-LBKUM,  "10月到12月以内的库龄数量
        QTY18M TYPE MBEW-LBKUM,  "13月到18月以内的库龄数量
        QTY24M TYPE MBEW-LBKUM,  "19月到24月以内的库龄数量
        QTY36M TYPE MBEW-LBKUM,  "25月到36月以内的库龄数量
        QTY60M TYPE MBEW-LBKUM,  "37月到60月以内的库龄数量
        QTY61M TYPE MBEW-LBKUM,  "61月以上的库龄数量
        PRC3M  TYPE MBEW-SALK3,  "3月以内的库龄金额
        PRC6M  TYPE MBEW-SALK3,  "4月到6月以内的库龄金额
        PRC9M  TYPE MBEW-SALK3,  "7月到9月以内的库龄金额
        PRC12M TYPE MBEW-SALK3,  "10月到12月以内的库龄金额
        PRC18M TYPE MBEW-SALK3,  "13月到18月以内的库龄金额
        PRC24M TYPE MBEW-SALK3,  "19月到24月以内的库龄金额
        PRC36M TYPE MBEW-SALK3,  "25月到36月以内的库龄金额
        PRC60M TYPE MBEW-SALK3,  "37月到60月以内的库龄金额
        PRC61M TYPE MBEW-SALK3,  "60月以上的库龄金额
        PERPRC TYPE MBEW-SALK3,  "跌价金额
        WAERS  TYPE MSEG-WAERS,  "价格单位
        PERFLG TYPE CHAR1,       "跌价规则维护标志
       END OF TP_ALV.
*&---------------------------------------------------------------------*
*&     DATA DEFINITION
*&---------------------------------------------------------------------*
DATA: V_GJAHR TYPE BSIS-GJAHR,
      V_MONAT TYPE BKPF-MONAT,
      V_WERKS TYPE T001W-WERKS,
      V_MATNR TYPE MARA-MATNR,
      V_LGORT TYPE MARD-LGORT,
      V_BWKEY TYPE T001W-BWKEY,
      V_QTY   TYPE MBEW-LBKUM,
      V_DMBTR TYPE MBEW-SALK3,
      V_AWKEY TYPE BKPF-AWKEY,
      V_FDATE TYPE SY-DATUM,
      V_TDATE TYPE SY-DATUM,
      V_COUT  TYPE I,
      V_NUM   TYPE NUMC2,
      V_FIELD TYPE CHAR5,
      V_VALUE TYPE FAGLFLEXT-HSLVT.

DATA: S_3M  TYPE RANGE OF SY-DATUM,  "过去3月以内的库龄数量
      S_6M  TYPE RANGE OF SY-DATUM,  "过去4月到6月以内的库龄数量
      S_9M  TYPE RANGE OF SY-DATUM,  "过去7月到9月以内的库龄数量
      S_12M TYPE RANGE OF SY-DATUM,  "过去10月到12月以内的库龄数量
      S_18M TYPE RANGE OF SY-DATUM,  "过去13月到18月以内的库龄数量
      S_24M TYPE RANGE OF SY-DATUM,  "过去19月到24月以内的库龄数量
      S_36M TYPE RANGE OF SY-DATUM,  "过去25月到36月以内的库龄数量
      S_60M TYPE RANGE OF SY-DATUM,  "过去37月到60月以内的库龄数量
      S_61M TYPE SY-DATUM.           "过去61月以上库龄数量

DATA: WK_MATNR    TYPE TP_MATNR,
      IT_MATNR    TYPE STANDARD TABLE OF TP_MATNR,
      WK_MCHB     TYPE TP_DATA,
      IT_MCHB     TYPE STANDARD TABLE OF TP_DATA,
      WK_MARD     TYPE TP_DATA,
      IT_MARD     TYPE STANDARD TABLE OF TP_DATA,
      WK_MSKA     TYPE TP_DATA,
      IT_MSKA     TYPE STANDARD TABLE OF TP_DATA,
      WK_MARC     TYPE TP_DATA,
      IT_MARC     TYPE STANDARD TABLE OF TP_DATA,
      WK_CHARG    TYPE TP_DATA,
      IT_CHARG    TYPE STANDARD TABLE OF TP_DATA,
      WK_DATA     TYPE TP_DATA,
      IT_DATA     TYPE STANDARD TABLE OF TP_DATA,
      WK_ZMMT001  TYPE ZMMT001,
      IT_ZMMT001  TYPE STANDARD TABLE OF ZMMT001,
      WK_ZFIT015  TYPE ZFIT015,
      IT_ZFIT015  TYPE STANDARD TABLE OF ZFIT015,
      WK_ZFIT016  TYPE ZFIT016,
      IT_ZFIT016  TYPE STANDARD TABLE OF ZFIT016,
      WK_ZFIT017  TYPE ZFIT017,
      IT_ZFIT017  TYPE STANDARD TABLE OF ZFIT017,
      WK_OBJ      TYPE FAGLFLEXT,
      WK_FAG1     TYPE FAGLFLEXT,
      IT_FAG1     TYPE STANDARD TABLE OF FAGLFLEXT,
      WK_MCH1     TYPE MCH1,
      IT_MCH1     TYPE STANDARD TABLE OF MCH1,
      WK_CEPCT    TYPE CEPCT,
      IT_CEPCT    TYPE STANDARD TABLE OF CEPCT,
      WK_MSEG     TYPE TP_MSEG,
      IT_MSEG     TYPE STANDARD TABLE OF TP_MSEG,
      IT_MSEG1    TYPE STANDARD TABLE OF TP_MSEG,
      WK_QTY      TYPE TP_QTY,
      IT_QTY      TYPE STANDARD TABLE OF TP_QTY,
      WK_BKPF     TYPE BKPF,
      IT_BKPF     TYPE STANDARD TABLE OF BKPF,
      WK_BSEG     TYPE TP_BSEG,
      IT_BSEG     TYPE STANDARD TABLE OF TP_BSEG,
      IT_AWKEY    TYPE STANDARD TABLE OF TP_MSEG,
      WK_ALV      TYPE TP_ALV,
      IT_ALV      TYPE STANDARD TABLE OF TP_ALV,
      WK_LAYOUT   TYPE SLIS_LAYOUT_ALV,
      IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV,
      IT_EVENT    TYPE STANDARD TABLE OF SLIS_ALV_EVENT.


  FIELD-SYMBOLS: <FS_HEAD>  TYPE FAGLFLEXT,
                 <FS_FIELD> TYPE ANY,
                 <FS_MSEG>  TYPE TP_MSEG,
                 <FS_CHARG> TYPE TP_DATA,
                 <FS_MCHB>  TYPE TP_DATA,
                 <FS_MARD>  TYPE TP_DATA,
                 <FS_MSKA>  TYPE TP_DATA,
                 <FS_MARC>  TYPE TP_DATA,
                 <FS_ALV>   TYPE TP_ALV.

*&---------------------------------------------------------------------*
*&     PARAMETERS DEFINITION
*&---------------------------------------------------------------------*
*PARAMETERS: P_MONAT TYPE BKPF-MONAT OBLIGATORY,   "Fiscal Period
*            P_GJAHR TYPE BSIS-GJAHR OBLIGATORY,   "Fiscal Year
PARAMETERS: P_SDATE TYPE SY-DATUM OBLIGATORY,
            P_BUKRS TYPE T001-BUKRS OBLIGATORY.   "Company Code

SELECT-OPTIONS: S_WERKS FOR V_WERKS OBLIGATORY,
                S_MATNR FOR V_MATNR,
                S_LGORT FOR V_LGORT.

*&---------------------------------------------------------------------*
*&     CONSTANTS DEFINITION
*&---------------------------------------------------------------------*
CONSTANTS: C_X          TYPE CHAR1 VALUE 'X',
           C_DAY        TYPE CHAR2 VALUE '01'.

*&---------------------------------------------------------------------*
*&     INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
* 初始化数据
  PERFORM INIT_DATA.
* 查询日期设置
  PERFORM SET_DATE.

*&---------------------------------------------------------------------*
*&     AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
* 输入检查
  PERFORM CHECK_INPUT.
*&---------------------------------------------------------------------*
*&     START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTIO
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值