(FI)生产入库产值情况表

(FI)生产入库产值情况表

 

REPORT ZFIR091.

*&---------------------------------------------------------------------*
*& 包含               ZFIR091_TOP
*&---------------------------------------------------------------------*

TABLES:MSEG,BKPF.

TYPE-POOLS:SLIS.

"定义ALV输出所需变量
DATAS_LAYOUT       TYPE SLIS_LAYOUT_ALV,
      GT_FIELDCAT    TYPE SLIS_T_FIELDCAT_ALV.
DATALV_SCRTEXTU1   TYPE SCRTEXT_L.
DATALV_SCRTEXTU2   TYPE SCRTEXT_L.
DATALV_SCRTEXTU3   TYPE SCRTEXT_L.
DATALV_SCRTEXTU4   TYPE SCRTEXT_L.
DATALV_SCRTEXTU5   TYPE SCRTEXT_L.
DATALV_SCRTEXTU6   TYPE SCRTEXT_L.
DATALV_SCRTEXTU7   TYPE SCRTEXT_L.
DATALV_SCRTEXTU8   TYPE SCRTEXT_L.
DATALV_SCRTEXTU9   TYPE SCRTEXT_L.
DATALV_SCRTEXTU10  TYPE SCRTEXT_L.
DATALV_SCRTEXTU11  TYPE SCRTEXT_L.
DATALV_SCRTEXTU12  TYPE SCRTEXT_L.
DATALV_SCRTEXTU13  TYPE SCRTEXT_L.
DATALV_SCRTEXTU14  TYPE SCRTEXT_L.
DATALV_SCRTEXTU15  TYPE SCRTEXT_L.
DATALV_SCRTEXTU16  TYPE SCRTEXT_L.
DATALV_SCRTEXTU17  TYPE SCRTEXT_L.
DATALV_SCRTEXTU18  TYPE SCRTEXT_L.
DATALV_SCRTEXTU19  TYPE SCRTEXT_L.
DATALV_SCRTEXTU20  TYPE SCRTEXT_L.
DATALV_SCRTEXTU21  TYPE SCRTEXT_L.
DATALV_SCRTEXTU22  TYPE SCRTEXT_L.
DATALV_SCRTEXTU23  TYPE SCRTEXT_L.
DATALV_SCRTEXTU24  TYPE SCRTEXT_L.
DATALV_SCRTEXTU25  TYPE SCRTEXT_L.
DATALV_SCRTEXTU26  TYPE SCRTEXT_L.
DATALV_SCRTEXTD1   TYPE SCRTEXT_L.
DATALV_SCRTEXTD2   TYPE SCRTEXT_L.
DATALV_SCRTEXTD3   TYPE SCRTEXT_L.
DATALV_SCRTEXTD4   TYPE SCRTEXT_L.
DATALV_SCRTEXTD5   TYPE SCRTEXT_L.
DATALV_SCRTEXTD6   TYPE SCRTEXT_L.
DATALV_SCRTEXTD7   TYPE SCRTEXT_L.
DATALV_SCRTEXTD8   TYPE SCRTEXT_L.
DATALV_SCRTEXTD9   TYPE SCRTEXT_L.
DATALV_SCRTEXTD10  TYPE SCRTEXT_L.
DATALV_SCRTEXTD11  TYPE SCRTEXT_L.
DATALV_SCRTEXTD12  TYPE SCRTEXT_L.
DATALV_SCRTEXTD13  TYPE SCRTEXT_L.
DATALV_SCRTEXTD14  TYPE SCRTEXT_L.
DATALV_SCRTEXTD15  TYPE SCRTEXT_L.
DATALV_SCRTEXTD16  TYPE SCRTEXT_L.
DATALV_SCRTEXTD17  TYPE SCRTEXT_L.
DATALV_SCRTEXTD18  TYPE SCRTEXT_L.
DATALV_SCRTEXTD19  TYPE SCRTEXT_L.
DATALV_SCRTEXTD20  TYPE SCRTEXT_L.
DATALV_SCRTEXTD21  TYPE SCRTEXT_L.
DATALV_SCRTEXTD22  TYPE SCRTEXT_L.
DATALV_SCRTEXTD23  TYPE SCRTEXT_L.
DATALV_SCRTEXTD24  TYPE SCRTEXT_L.
DATALV_SCRTEXTD25  TYPE SCRTEXT_L.
DATALV_SCRTEXTD26  TYPE SCRTEXT_L.
DATALV_BUDAT       TYPE BUDAT.
DATALV_BUDAU       TYPE BUDAT.
DATALV_BUDAF       TYPE BUDAT.
DATAP_GJAHU        TYPE GJAHR.
DATAP_BUKRS        TYPE BUKRS.
DATAP_VKORG        TYPE VKORG.
DATAP_WAERS        TYPE WAERS.

TYPESBEGIN OF GTS_DATA,

        MENGE        TYPE  MSEG-MENGE,       "产量
        WERKS        TYPE  MSEG-WERKS,       "工厂
        NAME2        TYPE  T001W-NAME2,      "工厂描述
        BUDAT_MKPF   TYPE  MSEG-BUDAT_MKPF,  "过账日期
        BWART        TYPE  MSEG-BWART,       "移动类型
        KZBEW        TYPE  MSEG-KZBEW,       "移动标识
        MATNR        TYPE  MSEG-MATNR,       "物料
        BUKRS        TYPE  T001K-BUKRS,      "公司代码
        VKORG        TYPE  TVKO-VKORG,       "销售组织
        WAERS        TYPE  T001-WAERS,       "公司代码取本币
        PRODH        TYPE  MVKE-PRODH,       "产品层次
        VTEXT1       TYPE  T179T-VTEXT,      "大类
        VTEXT2       TYPE  T179T-VTEXT,      "中类
        VTEXT3       TYPE  T179T-VTEXT,      "小类
        KNUMH        TYPE  A035-KNUMH,       "条件记录编号
        DATAB        TYPE  A035-DATAB,       "生效期
        KBETR        TYPE  KONP-KBETR,       "条件金额
        KBETRD       TYPE  KONP-KBETR,       "单价(含税)
        KBETRZ       TYPE  KONP-KBETR,       "总产值(含税)
        KONWA        TYPE  KONP-KONWA,       "条件单位(货币或百分比)
        KPEIN        TYPE  KONP-KPEIN,       "条件定价单位
        KUMZA        TYPE  KONP-KUMZA,       "转换分子
        KUMNE        TYPE  KONP-KUMNE,       "转换分母
        EXCH_RATE    TYPE  BAPI1093_0,       "汇率
        RETURN       TYPE  BAPIRET1,         "报错

        MENGE1       TYPE  MSEG-MENGE,       "产量
        MENGE2       TYPE  MSEG-MENGE,       "产量
        MENGE3       TYPE  MSEG-MENGE,       "产量
        MENGE4       TYPE  MSEG-MENGE,       "产量
        MENGE5       TYPE  MSEG-MENGE,       "产量
        MENGE6       TYPE  MSEG-MENGE,       "产量
        MENGE7       TYPE  MSEG-MENGE,       "产量
        MENGE8       TYPE  MSEG-MENGE,       "产量
        MENGE9       TYPE  MSEG-MENGE,       "产量
        MENGE10      TYPE  MSEG-MENGE,       "产量
        MENGE11      TYPE  MSEG-MENGE,       "产量
        MENGE12      TYPE  MSEG-MENGE,       "产量
        MENGE13      TYPE  MSEG-MENGE,       "产量

        KBETRZ1      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ2      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ3      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ4      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ5      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ6      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ7      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ8      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ9      TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ10     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ11     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ12     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ13     TYPE  KONP-KBETR,       "产值(含税)

        MENGE14      TYPE  MSEG-MENGE,       "产量
        MENGE15      TYPE  MSEG-MENGE,       "产量
        MENGE16      TYPE  MSEG-MENGE,       "产量
        MENGE17      TYPE  MSEG-MENGE,       "产量
        MENGE18      TYPE  MSEG-MENGE,       "产量
        MENGE19      TYPE  MSEG-MENGE,       "产量
        MENGE20      TYPE  MSEG-MENGE,       "产量
        MENGE21      TYPE  MSEG-MENGE,       "产量
        MENGE22      TYPE  MSEG-MENGE,       "产量
        MENGE23      TYPE  MSEG-MENGE,       "产量
        MENGE24      TYPE  MSEG-MENGE,       "产量
        MENGE25      TYPE  MSEG-MENGE,       "产量
        MENGE26      TYPE  MSEG-MENGE,       "产量

        KBETRZ14     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ15     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ16     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ17     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ18     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ19     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ20     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ21     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ22     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ23     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ24     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ25     TYPE  KONP-KBETR,       "产值(含税)
        KBETRZ26     TYPE  KONP-KBETR,       "产值(含税)

       END OF GTS_DATA.

DATAGT_DATA TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATAGT_ALV  TYPE TABLE OF GTS_DATA WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS:     P_WERKS  LIKE MSEG-WERKS OBLIGATORY .   "工厂
PARAMETERS:     P_GJAHR  LIKE BKPF-GJAHR OBLIGATORY .   "年度
PARAMETERS:     P_MONAT  LIKE BKPF-MONAT OBLIGATORY .   "期间
SELECTION-SCREEN END OF BLOCK B1.

 

*&---------------------------------------------------------------------*
*& 包含               ZSDR013A_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .

  AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
   ID 'WERKS' FIELD P_WERKS .
  IF SY-SUBRC <> 0.
    MESSAGE '您没有工厂:'&& P_WERKS && '  的权限!TYPE 'E' .
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
*取所选上一年度的第一天
  P_GJAHU  P_GJAHR .
  LV_BUDAU P_GJAHU && '01' && '01' .

*取所选期间的最后一天
  LV_BUDAT P_GJAHR && P_MONAT && '01' .
  CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
    EXPORTING
      I_DATE        LV_BUDAT
   
IMPORTING
      E_DATE        LV_BUDAT
      
.

  CLEAR:GT_DATA[].
  SELECT
    MSEG~MATNR
    MSEG
~MENGE
    MSEG
~BUDAT_MKPF
    MSEG
~BWART
  
INTO CORRESPONDING FIELDS OF TABLE GT_DATA[] FROM MSEG
    
WHERE WERKS P_WERKS
      
AND BUDAT_MKPF >= LV_BUDAU
      
AND BUDAT_MKPF <= LV_BUDAT
      
AND BWART IN '101','102' )
      AND KZBEW 'F'
      .

  CLEAR P_BUKRS .
  SELECT SINGLE BUKRS INTO P_BUKRS FROM T001K
    
WHERE BWKEY P_WERKS
    
.

  CLEAR P_VKORG .
  SELECT SINGLE VKORG INTO P_VKORG FROM TVKO
    
WHERE BUKRS P_BUKRS
    
.

  CLEAR P_WAERS .
  SELECT SINGLE WAERS INTO P_WAERS FROM T001
    
WHERE BUKRS P_BUKRS
    
.

  IF GT_DATA[] IS NOT INITIAL.
    LOOP AT GT_DATA.
      IF GT_DATA-BWART '102'  .
        GT_DATA-MENGE GT_DATA-MENGE * -.
      ENDIF.

      GT_DATA-WERKS P_WERKS .
      GT_DATA-BUKRS P_BUKRS .
      GT_DATA-VKORG P_VKORG .
      GT_DATA-WAERS P_WAERS .

      SELECT SINGLE PRODH INTO GT_DATA-PRODH FROM MVKE
        
WHERE MATNR GT_DATA-MATNR
*          AND VKORG = GT_DATA-VKORG
          .
*取大类
      SELECT SINGLE VTEXT INTO GT_DATA-VTEXT1 FROM T179T
        
WHERE PRODH GT_DATA-PRODH(5)
*          AND SPRAS = 1
          .
*取中类
      SELECT SINGLE VTEXT INTO GT_DATA-VTEXT2 FROM T179T
        
WHERE PRODH GT_DATA-PRODH+5(5)
*          AND SPRAS = 1
          .
*取小类
      SELECT SINGLE VTEXT INTO GT_DATA-VTEXT3 FROM T179T
        
WHERE PRODH GT_DATA-PRODH+10(8)
*          AND SPRAS = 1
          .

      SELECT SINGLE MAXA305~DATAB )
        A305~KNUMH
        A305
~DATAB
        KONP
~KBETR
        KONP
~KONWA
        KONP
~KPEIN
        KONP
~KUMZA
        KONP
~KUMNE
        
INTO CORRESPONDING FIELDS OF GT_DATA
        
FROM A305
        INNER 
JOIN KONP ON A305~KNUMH KONP~KNUMH
        
WHERE A305~KAPPL    'V'
          AND A305~KSCHL    'ZR01'
          AND A305~VKORG    GT_DATA-VKORG
          
AND A305~MATNR    GT_DATA-MATNR
          
AND A305~KBSTAT   ''
          AND KONP~LOEVM_KO ''
      GROUP BY
        A305~KNUMH
        A305
~DATAB
        KONP
~KBETR
        KONP
~KONWA
        KONP
~KPEIN
        KONP
~KUMZA
        KONP
~KUMNE
        
.

      IF GT_DATA-KONWA <> P_WAERS.
*取所选期间的第一天
        LV_BUDAF P_GJAHR && P_MONAT && '01' .
*取汇率
        CALL FUNCTION 'BAPI_EXCHANGERATE_GETDETAIL'
          EXPORTING
            RATE_TYPE        'M'
            FROM_CURR        GT_DATA-KONWA
            TO_CURRNCY       
P_WAERS
            
DATE             LV_BUDAF
          
IMPORTING
            EXCH_RATE        GT_DATA-EXCH_RATE "exch_rate 为纵深结构
            RETURN           GT_DATA-RETURN
            .

        GT_DATA-KBETR GT_DATA-KBETR * GT_DATA-EXCH_RATE-EXCH_RATE .

      ENDIF.

*单价(含税):本币条件金额 除以 条件定价单位(KONP-KPEIN 乘以 转换分母(KONP-KUMNE 除以 转换分子(KONP-KUMZA 乘以 1.16
      IF GT_DATA-KPEIN IS NOT INITIAL AND GT_DATA-KUMZA IS NOT INITIAL.
        GT_DATA-KBETRD GT_DATA-KBETR / GT_DATA-KPEIN * GT_DATA-KUMNE / GT_DATA-KUMZA * '1.16' .
      ENDIF.

*总产值(含税):单价(含税) 乘以 产量(MSEG-MENGE);
      GT_DATA-KBETRZ GT_DATA-KBETRD * GT_DATA-MENGE .

      MODIFY GT_DATA .
      CLEAR GT_DATA .
    ENDLOOP.

    CLEAR GT_ALV[] .
    GT_ALV[] GT_DATA[] .
    SORT GT_ALV[] BY PRODH .
    DELETE ADJACENT DUPLICATES FROM GT_ALV[] COMPARING PRODH .
*3,最后按照物料的大类、中类、小类、过账日期(MSEG-BUDAT_MKPF)的年度月份汇总产量(MSEG-MENGE)、总产值(含税),
*赋值给对应的XX-产量、总产值(含税)。
    LOOP AT GT_ALV.
      LOOP AT GT_DATA WHERE PRODH GT_ALV-PRODH .
         IF GT_DATA-BUDAT_MKPF(4) = P_GJAHU"上一年度
            IF GT_DATA-BUDAT_MKPF+4(2) = 01.
              GT_ALV-MENGE1 GT_ALV-MENGE1 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ1 GT_ALV-KBETRZ1 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 02.
              GT_ALV-MENGE2 GT_ALV-MENGE2 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ2 GT_ALV-KBETRZ2 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 03.
              GT_ALV-MENGE3 GT_ALV-MENGE3 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ3 GT_ALV-KBETRZ3 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 04.
              GT_ALV-MENGE4 GT_ALV-MENGE4 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ4 GT_ALV-KBETRZ4 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 05.
              GT_ALV-MENGE5 GT_ALV-MENGE5 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ5 GT_ALV-KBETRZ5 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 06.
              GT_ALV-MENGE6 GT_ALV-MENGE6 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ6 GT_ALV-KBETRZ6 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 07.
              GT_ALV-MENGE7 GT_ALV-MENGE7 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ7 GT_ALV-KBETRZ7 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 08.
              GT_ALV-MENGE8 GT_ALV-MENGE8 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ8 GT_ALV-KBETRZ8 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 09.
              GT_ALV-MENGE9 GT_ALV-MENGE9 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ9 GT_ALV-KBETRZ9 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 10.
              GT_ALV-MENGE10 GT_ALV-MENGE10 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ10 GT_ALV-KBETRZ10 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 11.
              GT_ALV-MENGE11 GT_ALV-MENGE11 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ11 GT_ALV-KBETRZ11 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 12.
              GT_ALV-MENGE12 GT_ALV-MENGE12 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ12 GT_ALV-KBETRZ12 + GT_DATA-KBETRZ "产值(含税)
            ENDIF.
            GT_ALV-MENGE13 GT_ALV-MENGE13 + GT_DATA-MENGE "产量
            GT_ALV-KBETRZ13 GT_ALV-KBETRZ13 + GT_DATA-KBETRZ "产值(含税)
         ELSEIF GT_ALV-BUDAT_MKPF(4) = P_GJAHR"当前年度
            IF GT_DATA-BUDAT_MKPF+4(2) = 01.
              GT_ALV-MENGE14 GT_ALV-MENGE14 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ14 GT_ALV-KBETRZ14 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 02.
              GT_ALV-MENGE15 GT_ALV-MENGE15 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ15 GT_ALV-KBETRZ15 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 03.
              GT_ALV-MENGE16 GT_ALV-MENGE16 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ16 GT_ALV-KBETRZ16 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 04.
              GT_ALV-MENGE17 GT_ALV-MENGE17 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ17 GT_ALV-KBETRZ17 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 05.
              GT_ALV-MENGE18 GT_ALV-MENGE18 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ18 GT_ALV-KBETRZ18 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 06.
              GT_ALV-MENGE19 GT_ALV-MENGE19 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ19 GT_ALV-KBETRZ19 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 07.
              GT_ALV-MENGE20 GT_ALV-MENGE20 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ20 GT_ALV-KBETRZ20 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 08.
              GT_ALV-MENGE21 GT_ALV-MENGE21 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ21 GT_ALV-KBETRZ21 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 09.
              GT_ALV-MENGE22 GT_ALV-MENGE22 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ22 GT_ALV-KBETRZ22 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 10.
              GT_ALV-MENGE23 GT_ALV-MENGE23 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ23 GT_ALV-KBETRZ23 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 11.
              GT_ALV-MENGE24 GT_ALV-MENGE24 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ24 GT_ALV-KBETRZ24 + GT_DATA-KBETRZ "产值(含税)
            ELSEIF GT_DATA-BUDAT_MKPF+4(2) = 12.
              GT_ALV-MENGE25 GT_ALV-MENGE25 + GT_DATA-MENGE "产量
              GT_ALV-KBETRZ25 GT_ALV-KBETRZ25 + GT_DATA-KBETRZ "产值(含税)
            ENDIF.
            GT_ALV-MENGE26 GT_ALV-MENGE26 + GT_DATA-MENGE "产量
            GT_ALV-KBETRZ26 GT_ALV-KBETRZ26 + GT_DATA-KBETRZ "产值(含税)
         ENDIF.
      ENDLOOP.
      MODIFY GT_ALV .
      CLEAR GT_ALV .
    ENDLOOP.
  ELSE.
    MESSAGE '没有符合条件的数据TYPE 'I'.
    STOP.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETFIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETFIELDCAT .
*上一年度
  LV_SCRTEXTU1  P_GJAHU && '01-产量:.
  LV_SCRTEXTU2  P_GJAHU && '01-总产值(含税):.
  LV_SCRTEXTU3  P_GJAHU && '02-产量:.
  LV_SCRTEXTU4  P_GJAHU && '02-总产值(含税):.
  LV_SCRTEXTU5  P_GJAHU && '03-产量:.
  LV_SCRTEXTU6  P_GJAHU && '03-总产值(含税):.
  LV_SCRTEXTU7  P_GJAHU && '04-产量:.
  LV_SCRTEXTU8  P_GJAHU && '04-总产值(含税):.
  LV_SCRTEXTU9  P_GJAHU && '05-产量:.
  LV_SCRTEXTU10 P_GJAHU && '05-总产值(含税):.
  LV_SCRTEXTU11 P_GJAHU && '06-产量:.
  LV_SCRTEXTU12 P_GJAHU && '06-总产值(含税):.
  LV_SCRTEXTU13 P_GJAHU && '07-产量:.
  LV_SCRTEXTU14 P_GJAHU && '07-总产值(含税):.
  LV_SCRTEXTU15 P_GJAHU && '08-产量:.
  LV_SCRTEXTU16 P_GJAHU && '08-总产值(含税):.
  LV_SCRTEXTU17 P_GJAHU && '09-产量:.
  LV_SCRTEXTU18 P_GJAHU && '09-总产值(含税):.
  LV_SCRTEXTU19 P_GJAHU && '10-产量:.
  LV_SCRTEXTU20 P_GJAHU && '10-总产值(含税):.
  LV_SCRTEXTU21 P_GJAHU && '11-产量:.
  LV_SCRTEXTU22 P_GJAHU && '11-总产值(含税):.
  LV_SCRTEXTU23 P_GJAHU && '12-产量:.
  LV_SCRTEXTU24 P_GJAHU && '12-总产值(含税):.
  LV_SCRTEXTU25 P_GJAHU && '年累计-产量:.
  LV_SCRTEXTU26 P_GJAHU && '年累计-总产值(含税):.
*当前年度
  LV_SCRTEXTD1  P_GJAHR && '01-产量:.
  LV_SCRTEXTD2  P_GJAHR && '01-总产值(含税):.
  LV_SCRTEXTD3  P_GJAHR && '02-产量:.
  LV_SCRTEXTD4  P_GJAHR && '02-总产值(含税):.
  LV_SCRTEXTD5  P_GJAHR && '03-产量:.
  LV_SCRTEXTD6  P_GJAHR && '03-总产值(含税):.
  LV_SCRTEXTD7  P_GJAHR && '04-产量:.
  LV_SCRTEXTD8  P_GJAHR && '04-总产值(含税):.
  LV_SCRTEXTD9  P_GJAHR && '05-产量:.
  LV_SCRTEXTD10 P_GJAHR && '05-总产值(含税):.
  LV_SCRTEXTD11 P_GJAHR && '06-产量:.
  LV_SCRTEXTD12 P_GJAHR && '06-总产值(含税):.
  LV_SCRTEXTD13 P_GJAHR && '07-产量:.
  LV_SCRTEXTD14 P_GJAHR && '07-总产值(含税):.
  LV_SCRTEXTD15 P_GJAHR && '08-产量:.
  LV_SCRTEXTD16 P_GJAHR && '08-总产值(含税):.
  LV_SCRTEXTD17 P_GJAHR && '09-产量:.
  LV_SCRTEXTD18 P_GJAHR && '09-总产值(含税):.
  LV_SCRTEXTD19 P_GJAHR && '10-产量:.
  LV_SCRTEXTD20 P_GJAHR && '10-总产值(含税):.
  LV_SCRTEXTD21 P_GJAHR && '11-产量:.
  LV_SCRTEXTD22 P_GJAHR && '11-总产值(含税):.
  LV_SCRTEXTD23 P_GJAHR && '12-产量:.
  LV_SCRTEXTD24 P_GJAHR && '12-总产值(含税):.
  LV_SCRTEXTD25 P_GJAHR && '年累计-产量:.
  LV_SCRTEXTD26 P_GJAHR && '年累计-总产值(含税):.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY .
  CLEAR S_LAYOUT.
  S_LAYOUT-ZEBRA 'X'.
  S_LAYOUT-COLWIDTH_OPTIMIZE 'X'.
*  s_layout-box_fieldname    = 'BOX'.
  PERFORM FRM_FILL_FIELD .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      IS_LAYOUT                S_LAYOUT
      IT_FIELDCAT              
GT_FIELDCAT
      I_CALLBACK_PROGRAM       
SY-REPID
      I_CALLBACK_PF_STATUS_SET 
'PF_STATUS_SET'
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_USER_COMMAND  'USER_COMMAND'
    TABLES
      T_OUTTAB                 GT_ALV[].
ENDFORM.

FORM FRM_FILL_FIELD .
  DATA:  WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
  DEFINE FILL_FIELD.
    wa_fieldcat-fieldname &1.
    wa_fieldcat-seltext_l &2.
*    wa_fieldcat-checkbox  = &3.
*     wa_fieldcat-edit    =  &4.

*    IF wa_fieldcat-fieldname = 'MATNR' OR wa_fieldcat-fieldname = 'MATNR_WM'
*       OR wa_fieldcat-fieldname = 'IDNRK_WZ' OR wa_fieldcat-fieldname = 'BAUGR_SM'
*       OR wa_fieldcat-fieldname = 'MATNR_SZ'.
*
*       wa_fieldcat-ref_tabname   = 'VBAP'.
*       wa_fieldcat-ref_fieldname = 'MATNR'.
*
*    ENDIF.
*
*    IF wa_fieldcat-fieldname = 'OJTXB_WM' OR wa_fieldcat-fieldname = 'OJTXB_WZ'
*       OR wa_fieldcat-fieldname = 'OJTXB_SM' OR wa_fieldcat-fieldname = 'OJTXB_SZ' .
*
*       wa_fieldcat-ref_tabname   = 'MAKT'.
*       wa_fieldcat-ref_fieldname = 'MAKTX'.
*
*    ENDIF.

    APPEND wa_fieldcat TO gt_fieldcat.
    CLEAR wa_fieldcat.
  END-OF-DEFINITION.
  FILL_FIELD :
        'PRODH'     '产品层次',
        'VTEXT1'    '大类',
        'VTEXT2'    '中类',
        'VTEXT3'    '小类',
        'MENGE1'    LV_SCRTEXTU1,
        'KBETRZ1'   LV_SCRTEXTU2,
        'MENGE2'    LV_SCRTEXTU3,
        'KBETRZ2'   LV_SCRTEXTU4,
        'MENGE3'    LV_SCRTEXTU5,
        'KBETRZ3'   LV_SCRTEXTU6,
        'MENGE4'    LV_SCRTEXTU7,
        'KBETRZ4'   LV_SCRTEXTU8,
        'MENGE5'    LV_SCRTEXTU9,
        'KBETRZ5'   LV_SCRTEXTU10,
        'MENGE6'    LV_SCRTEXTU11,
        'KBETRZ6'   LV_SCRTEXTU12,
        'MENGE7'    LV_SCRTEXTU13,
        'KBETRZ7'   LV_SCRTEXTU14,
        'MENGE8'    LV_SCRTEXTU15,
        'KBETRZ8'   LV_SCRTEXTU16,
        'MENGE9'    LV_SCRTEXTU17,
        'KBETRZ9'   LV_SCRTEXTU18,
        'MENGE10'   LV_SCRTEXTU19,
        'KBETRZ10'  LV_SCRTEXTU20,
        'MENGE11'   LV_SCRTEXTU21,
        'KBETRZ11'  LV_SCRTEXTU22,
        'MENGE12'   LV_SCRTEXTU23,
        'KBETRZ12'  LV_SCRTEXTU24,
        'MENGE13'   LV_SCRTEXTU25,
        'KBETRZ13'  LV_SCRTEXTU26,

        'MENGE14'   LV_SCRTEXTD1,
        'KBETRZ14'  LV_SCRTEXTD2,
        'MENGE15'   LV_SCRTEXTD3,
        'KBETRZ15'  LV_SCRTEXTD4,
        'MENGE16'   LV_SCRTEXTD5,
        'KBETRZ16'  LV_SCRTEXTD6,
        'MENGE17'   LV_SCRTEXTD7,
        'KBETRZ17'  LV_SCRTEXTD8,
        'MENGE18'   LV_SCRTEXTD9,
        'KBETRZ18'  LV_SCRTEXTD10,
        'MENGE19'   LV_SCRTEXTD11,
        'KBETRZ19'  LV_SCRTEXTD12,
        'MENGE120'  LV_SCRTEXTD13,
        'KBETRZ20'  LV_SCRTEXTD14,
        'MENGE21'   LV_SCRTEXTD15,
        'KBETRZ21'  LV_SCRTEXTD16,
        'MENGE22'   LV_SCRTEXTD17,
        'KBETRZ22'  LV_SCRTEXTD18,
        'MENGE23'   LV_SCRTEXTD19,
        'KBETRZ23'  LV_SCRTEXTD20,
        'MENGE24'   LV_SCRTEXTD21,
        'KBETRZ24'  LV_SCRTEXTD22,
        'MENGE25'   LV_SCRTEXTD23,
        'KBETRZ25'  LV_SCRTEXTD24,
        'MENGE26'   LV_SCRTEXTD25,
        'KBETRZ26'  LV_SCRTEXTD26.

ENDFORM.

FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                    IS_SELFIELD 
TYPE SLIS_SELFIELD.
  DATAREF TYPE REF TO CL_GUI_ALV_GRID.
  DATA LV_STABLE TYPE LVC_S_STBL.   "刷新稳定性
  RANGESL_WERKS FOR T001W-WERKS.
  RANGESL_MATNR FOR MARA-MATNR.
  DATA:L_BUKRS TYPE T001K-BUKRS.

  LV_STABLE-ROW '1'.
  LV_STABLE-COL '1'.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID REF.
  CALL METHOD REF->CHECK_CHANGED_DATA.

  CASE I_UCOMM.
    WHEN 'DEL_DJ'.
  ENDCASE.

  CALL METHOD REF->REFRESH_TABLE_DISPLAY
    
EXPORTING
      IS_STABLE LV_STABLE.

ENDFORM.

 

INITIALIZATION .

AT SELECTION-SCREEN OUTPUT.
  PERFORM SCREEN_SETTING.

START-OF-SELECTION.
  PERFORM FOM_GETDATA .
  PERFORM FOM_GETFIELDCAT .
  PERFORM FRM_DISPLAY.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值