(FI)生产入库产值情况表
REPORT ZFIR091.
*&---------------------------------------------------------------------*
*& 包含 ZFIR091_TOP
*&---------------------------------------------------------------------*
TABLES:MSEG,BKPF.
TYPE-POOLS:SLIS.
"定义ALV输出所需变量
DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LV_SCRTEXTU1 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU2 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU3 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU4 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU5 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU6 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU7 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU8 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU9 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU10 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU11 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU12 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU13 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU14 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU15 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU16 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU17 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU18 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU19 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU20 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU21 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU22 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU23 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU24 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU25 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTU26 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD1 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD2 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD3 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD4 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD5 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD6 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD7 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD8 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD9 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD10 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD11 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD12 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD13 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD14 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD15 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD16 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD17 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD18 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD19 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD20 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD21 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD22 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD23 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD24 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD25 TYPE SCRTEXT_L.
DATA: LV_SCRTEXTD26 TYPE SCRTEXT_L.
DATA: LV_BUDAT TYPE BUDAT.
DATA: LV_BUDAU TYPE BUDAT.
DATA: LV_BUDAF TYPE BUDAT.
DATA: P_GJAHU TYPE GJAHR.
DATA: P_BUKRS TYPE BUKRS.
DATA: P_VKORG TYPE VKORG.
DATA: P_WAERS TYPE WAERS.
TYPES: BEGIN 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.
DATA: GT_DATA TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_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 - 1 .
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 * -1 .
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 MAX( A305~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)、总产值(含税),
*赋值给对应的X年X月-产量、总产值(含税)。
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.
DATA: REF TYPE REF TO CL_GUI_ALV_GRID.
DATA : LV_STABLE TYPE LVC_S_STBL. "刷新稳定性
RANGES: L_WERKS FOR T001W-WERKS.
RANGES: L_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.