FICO 成本差异分析表

text symbol

T01 基本数据 8 12
T02 附加数据 8 132
T03 报表类型 8 8
T10  [说明]: 8 8
T11 1) 期初数量(金额/差异): = 上期期末数量(金额/差异) ; 51 132
T21 2) 本期增加数量(金额): = 所有本期凭证类型为 WE 收货 的凭证 (表BSIM); 68 132
T31 3) 本期减少数量(金额): = 所有本期凭证类型为 WA, WL, WI, PR等 收货 的凭证 (表BSIM); 82 132
T41 4) 本期增加差异: = 下述第8点的差异之和; 39 132
T42     理论上这两者金额相同, 但不排除有个别差异为手工调整差异, 不在此表中; 71 132
T51 5) 本期差异率%: = (期初差异+本期增加差异) / (期初数量+本期增加数量); 68 132
T61 6) 本期减少差异: = 本期减少数量 * 本期差异率%; 46 132
T71 7) 期末差异: = 期初差异 + 本期增加差异 - 本期减少差异; 54 132
T72     期末数量(金额): = 期初数量(金额) + 本期增加数量(金额) - 本期减少数量(金额); 79 132
T81 8) 本报表中的差异科目为: 511910(原材料差异), 511920(半成品差异), 511930(产成品差异), 84 88
T82                                     511950(低值品差异), 511960(广告物料差异) 共5个科目之和; 91 91

 

selections texts

P_GJAHR 会计年度
P_MONAT 会计期间
P_WERKS 工厂
R_QAMT 查询库存差异
R_QQTY 查询库存数量
R_SAVE 保存库存差异
S_BKLAS 评估类
S_HKONT 存货科目
S_MATNR 物料
S_MTART 物料类型
S_PRCTR 利润中心

source code

 

 

************************************************************************
* PROGRAM NAME        : 成本差异分析报告                               *
* APPLICATION NAME    : CO-PC                                          *
* SUBSYSTEM           :                                                *
* AUTHOR              : L006125                                        *
* TRANSACTION         : YCO10                                          *
* PROGRAM TYPE        : Report                                         *
* INPUT FILES         :                                                *
* OUTPUT FILES        :                                                *
* PROGRAM ID          : YCOR0010                                       *
*&---------------------------------------------------------------------*
*& REVISION LOG                                                        *
*& LOG#       DATE         AUTHOR               DESCRIPTION            *
*& ----       ----          ------               -----------           *
*&  001      2008/09/25   L006125              Created                *
************************************************************************
*& 修改日期:2010.05.20
*& 修 改 人:zhouxu V1.0
*& 修改原因:日期期间修改为会计区间变式中指定日期。544冲销543数量。

REPORT  ycor0010 MESSAGE-ID 1000.
TABLES: mara,
        makt,
        bsim,
        t030,
        ycot0010.

TYPE-POOLS: slis.
INCLUDE  <icon>.

*&---------------------------------------------------------------------*
*&      DECLARE
*&---------------------------------------------------------------------*

*** 通用变量
DATA: v_dbcnt(10)       TYPE c,
      v_msg             TYPE string,
      v_check(01)       TYPE c,
      v_repid           LIKE sy-repid,
      is_alv_disvariant LIKE disvariant,
      is_alv_print      TYPE slis_print_alv,
      is_alv_layout     TYPE slis_layout_alv,
      it_alv_events     TYPE slis_t_event,
      it_alv_sort       TYPE slis_t_sortinfo_alv WITH HEADER LINE,
      is_alv_fieldcat   TYPE slis_fieldcat_alv,
      it_alv_fieldcat   TYPE slis_t_fieldcat_alv WITH HEADER LINE.

*** 临时变量
DATA: v_waers   LIKE t001-waers,
      v_fr_date TYPE d,     "查询期间第一天
      v_to_date TYPE d,     "查询期间月底日
      v_edate   TYPE d.     "上月最后一天,用于取上月期初
DATA: e_buper LIKE t009b-poper,"ADD V1.0上期间月
e_gjahr LIKE t009b-bdatj. "ADD V1.0 上期间年度

*** 取数内表
DATA: it_ycot0010 LIKE TABLE OF ycot0010 WITH HEADER LINE.   "存放期初

DATA: BEGIN OF it_bsim OCCURS 0,                             "存放本期发生数
        matnr LIKE bsim-matnr,
        bwkey LIKE bsim-bwkey,
        belnr LIKE bsim-belnr,
        shkzg LIKE bsim-shkzg,
        dmbtr LIKE bsim-dmbtr,
        menge LIKE bsim-menge,
        meins LIKE bsim-meins,
        budat LIKE bsim-budat,
        blart LIKE bsim-blart,

        maktx LIKE makt-maktx,
        mtart LIKE mara-mtart,
        matkl LIKE mara-matkl,
        prctr LIKE marc-prctr,
        spart LIKE mara-spart,

* ADD by LKJ 2008/11/27
        buzei LIKE bsim-buzei,
        dmbtrp LIKE bsim-dmbtr,
        mengep LIKE bsim-menge,
      END OF it_bsim.

DATA: BEGIN OF it_bsis OCCURS 0,   "存放本期差异
        werks LIKE bseg-werks,
        hkont LIKE bseg-hkont,
        matnr LIKE bseg-matnr,
        shkzg LIKE bseg-shkzg,
        dmbtr LIKE bseg-dmbtr,
        menge LIKE bseg-menge,
        bukrs LIKE bseg-bukrs,
        belnr LIKE bseg-belnr,
        gjahr LIKE bseg-gjahr,
        buzei LIKE bseg-buzei,   "此行要
      END OF it_bsis.

DATA: BEGIN OF it_t134t OCCURS 0,  "物料类型
        mtart LIKE t134t-mtart,
        mtbez LIKE t134t-mtbez,
      END OF it_t134t.

DATA: BEGIN OF it_t023t OCCURS 0,  "物料组
        matkl LIKE t023t-matkl,
        wgbez LIKE t023t-wgbez,
      END OF it_t023t.

*** 取数内表
DATA: BEGIN OF it_mseg OCCURS 0,
      mblnr LIKE mseg-mblnr,
      zeile LIKE mseg-zeile,
      bwart LIKE mseg-bwart,
      matnr LIKE mseg-matnr,
      belnr LIKE mseg-belnr,
      buzei LIKE mseg-buzei,
      dmbtr LIKE mseg-dmbtr,
      menge LIKE mseg-menge,
      shkzg LIKE mseg-shkzg,
      budat LIKE mkpf-budat,
      END OF it_mseg.

*** 输出内表
DATA: BEGIN OF is_output.
        INCLUDE STRUCTURE ycot0010.
DATA:   flagt TYPE char15,
      END OF is_output .
DATA: it_output LIKE TABLE OF is_output WITH HEADER LINE.
DATA: ic_bsim LIKE TABLE OF it_bsim WITH HEADER LINE.

*&---------------------------------------------------------------------*
*&      SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS: p_werks LIKE ycot0010-werks OBLIGATORY DEFAULT 'LN01',
            p_gjahr LIKE ycot0010-gjahr OBLIGATORY DEFAULT sy-datum(4),
            p_monat LIKE ycot0010-monat OBLIGATORY DEFAULT sy-datum+4(2).

 

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
SELECT-OPTIONS: s_matnr FOR ycot0010-matnr MODIF ID g2,
                s_bklas FOR ycot0010-bklas MODIF ID g2,
                s_hkont FOR ycot0010-hkont MODIF ID g2,
                s_mtart FOR ycot0010-mtart MODIF ID g2,
                s_prctr FOR ycot0010-prctr MODIF ID g2.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
PARAMETERS: r_save RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND dummy,  "MODIF ID g1
            r_qqty RADIOBUTTON GROUP rad1,                                 "MODIF ID g2
            r_qamt RADIOBUTTON GROUP rad1.                                 "MODIF ID g2
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(22) text-t10 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t11 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t21 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t31 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t41 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t42 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t51 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t61 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t71 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t81 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(82) text-t82 MODIF ID g1.
SELECTION-SCREEN END OF LINE.

*&---------------------------------------------------------------------*
*&       INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.

*&---------------------------------------------------------------------*
*&      Event  AT SELECTION-SCREEN OUTPUT            用户事件
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM check_hide.

*&---------------------------------------------------------------------*
*&      START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM check_authority_value.

  IF r_save = 'X'.
    sy-title = '保存库存差异'.
    PERFORM get_save_kcdata.

  ELSEIF r_qqty = 'X'.
    sy-title = '查询库存数量'.
    PERFORM get_get_kcqtydiff.

  ELSEIF r_qamt = 'X'.
    sy-title = '查询库存差异'.
    PERFORM get_get_kcqtydiff.
  ENDIF.

  PERFORM set_vari       CHANGING is_alv_disvariant.
  PERFORM set_events     CHANGING it_alv_events.
  PERFORM set_layout     CHANGING is_alv_layout.
  PERFORM alv_fieldcat   TABLES it_alv_fieldcat.
  PERFORM output_to_alv  TABLES it_output.


**************************< 以下是过程 >********************************

*&---------------------------------------------------------------------*
*&      Form  CHECK_AUTHORITY_VALUE
*&---------------------------------------------------------------------*
FORM check_authority_value .
  DATA: lv_monat(3) TYPE n, v_periv LIKE t001-periv.

  AUTHORITY-CHECK OBJECT 'YREPORT'
    ID 'BUKRS' FIELD 'HL01'
    ID 'WERKS' FIELD 'LN01'.
  IF sy-subrc NE 0.
    MESSAGE e005(ymess) WITH 'No Authorization!'.
  ENDIF.

*  CONCATENATE p_gjahr p_monat '01' INTO v_fr_date.       "得到本期间第一天   ZHOUXU V1.0 DEL
  lv_monat = p_monat.
  SELECT SINGLE waers periv FROM t001
         INTO (v_waers,v_periv)
         WHERE bukrs = 'HL01'.
*------------------BEGIN ZHOUXU V1.0 ADD 得到期间第一天--------------------
  CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'                 "取本月期间第一天
    EXPORTING
      i_gjahr = p_gjahr                                     "会计年度
      i_periv = v_periv                                     "会计年度变式K4
      i_poper = lv_monat                                    "期间(3位N)''
    IMPORTING
      e_date  = v_fr_date.
*------------------END ZHOUXU V1.0 ADD 得到期间第一天---------------------
*----------------BEGIN ZHOUXU V1.0 ADD 得到上期间会计年度和月份-----------
  v_edate = v_fr_date - 1.
  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'                 "得到上期间会计年度和月份
   EXPORTING
       i_date  = v_edate
       i_periv = v_periv
   IMPORTING
       e_buper = e_buper
       e_gjahr = e_gjahr.
*----------------END ZHOUXU V1.0 ADD 得到上期间会计年度和月份-----------
  CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'                 "取本月最后一天
    EXPORTING
      i_gjahr = p_gjahr                                     "会计年度
      i_periv = v_periv                                     "会计年度变式K4
      i_poper = lv_monat                                    "期间(3位N)''
    IMPORTING
      e_date  = v_to_date.
  IF v_edate = 0.
    MESSAGE '[会计年度] 或 [会计期间] 输入错误, 请检查输入!' TYPE  'S' .
    STOP.
  ENDIF.
  "得到上月末
  IF v_edate(6) < '200808'.
    MESSAGE '[会计年度] 或 [会计期间] 不能早于上线时间:2008年9月, 请检查输入!' TYPE  'S' .
    STOP.
  ENDIF.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text = '程序正在运行中,请稍候...'.

ENDFORM.                    " CHECK_AUTHORITY_VALUE

*&---------------------------------------------------------------------*
*&      Form  get_save_kcdata
*&----------------------

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值