2008/11/10

SAP ABAP 开发-报表按照交易日期取相应会计期间的价格-MBEW 和 MBEWH的关系

SAP中大家应该知道 MBEW 是存放物料的价格信息的表。其中包括了-料号 MATNR、工厂 WERKS 、评估类型 BWTAR 、总评估的库存 LBKUM 、估价的库存总价值 SALK3 、价格控制指示符 VPRSV 、移动平均价格/周期单价 VERPR 、 标准价格 STPRS 、 格单位 PEINH 。
在 MBEW中我们可以方便的取到本期价格和上期价格。但是,有些时候我们需要取得物料的往期价格信息,此时MBEW就无能为力了。这时候我们就需要用到MBEWH了。

MBEWH的结构类似于 MBEW但是多了几个字段-当前期间的会计年度 LFGJA、当前期间 (记帐期间) LFMON 。
每以行的数据就是一颗物料在相应工厂下的相应会计年度和相应会计期间中的库存记录和价格信息。
其实MBEWH我们可以认为是月结数据记录表。存储的是每个会计期间月结之后的数据。

这样我们就可很方便的取出相应会计期间的数据。
以下代码就是使用的简单说明。
itab1-BUDAT中存储日期信息。如果itab1-BUDAT不在当年度和期间(就是现在的年和月)就查询MBEW中的一行对应数据,否则就查询MBEWH中的一行对应数据。
判断查询的日期是否为当前会计期间,如不是就查询MBEWH中的价格信息

DATA: BEGIN OF ITAB1 OCCURS 0,       
        BUDAT TYPE D VALUE '20070105',   "日期为 2007-01-05
        MATNR LIKE MBEW-MATNR,    "料号
        WERKS LIKE MBEW-WERKS,    "仓位
        BWTAR LIKE MBEW-BWTAR,    "评估类型
      END OF ITAB1.

      "SY-DATUM+0(4) 当前年度  SY-DATUM+4(2) 当前月度
      IF SY-DATUM+0(4) = itab1-BUDAT+0(4) AND SY-DATUM+4(2) = itab1-BUDAT+4(2).
        select single * from mbew
        where matnr = itab1-matnr
          and bwkey = itab1-werks
          and bwtar = itab1-bwtar.
      ELSE.
        select single * from mbewh
        where matnr = itab1-matnr
              and bwkey = itab1-werks
              and bwtar = itab1-bwtar
              and LFGJA = itab1-BUDAT+0(4)
              and LFMON = itab1-BUDAT+4(2).
      ENDIF.
----------------------------------------
MBEW品目��

MATNR品目コ�ド
BWKEY��レベル(プラント)
LBKUM��在�合�
SALK3��在�合��
STPRS��原�

2 comments:

Anonymous said...

People today who liked it also said that they had to put in some physical workout and
a control more than diet plan to drop fat from the abdomen.



Feel free to visit my web-site - http://catoire.vps.kotisivut.com

Anonymous said...

I do not eѵen know the waу I finisheԁ
up heгe, howеvеr I thought
this submіt ωas once good. I don't understand who you're however definitely you are
going to а famous bloggeг in case you aгe not already.

Cheers!

My wеblog veloura reviews