对账单
来源:互联网 发布:知行学院学信网 编辑:程序博客网 时间:2024/04/28 00:30
*&---------------------------------------------------------------------*
*& Report ZFIR23
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFIR23.
TYPE-POOLS:SLIS.
TABLES:EINA,MVKE,MKPF,MSEG,MAKT,EKPO.
DATA:LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
W_REPID LIKE SY-REPID.
*DATA:MAKTX LIKE MAKT-MAKTX,
* MVGR2 LIKE MVKE-MVGR2.
DATA:BEGIN OF T_OUTPUT OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
G_LABST_S LIKE MARDH-LABST,"好件期初库存
B_LABST_S LIKE MARDH-LABST,"坏件期初库存
G_LABST_E LIKE MARDH-LABST,"好件期末库存
B_LABST_E LIKE MARDH-LABST,"坏件期末库存
G_RETURN LIKE MARDH-LABST,"好件退货
G_RETURN1 LIKE MARDH-LABST,"好件退货冲销
B_RETURN LIKE MARDH-LABST,"坏件退货
B_RETURN1 LIKE MARDH-LABST,"坏件退货冲销
LOSS_LABST LIKE MARDH-LABST,"盘亏
INCOME_LABST LIKE MARDH-LABST,"盘盈
GET_LABST LIKE MARDH-LABST,"入库
GET_LABST1 LIKE MARDH-LABST,"入库冲销
OUT_LABST LIKE MARDH-LABST,"出库
END OF T_OUTPUT.
DATA:BEGIN OF TEMPTAB OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
END OF TEMPTAB.
DATA:BEGIN OF TEMPTAB1 OCCURS 0,
MATNR LIKE MARDH-MATNR,
LABST LIKE MARDH-LABST,"库存
LGORT LIKE MARDH-LGORT,"库位
LFGJA LIKE MARDH-LFGJA,"年
LFMON LIKE MARDH-LFMON,"月
WERKS LIKE MARDH-WERKS,
END OF TEMPTAB1.
DATA:BEGIN OF TEMPTAB2 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB2.
DATA:BEGIN OF TEMPTAB3 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,"数量
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB3.
DATA:BEGIN OF TEMPTAB4 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,"数量
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB4.
DATA:BEGIN OF TEMPTAB5 OCCURS 0,
MATNR LIKE MVKE-MATNR,"物料编号
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
MVGR2 LIKE MVKE-MVGR2,
END OF TEMPTAB5.
DATA:DATE_LOW LIKE MKPF-BUDAT,
DATE_HIGH LIKE MKPF-BUDAT.
DATA:S_LIFNR LIKE MSEG-LIFNR.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:WERKS LIKE MSEG-WERKS OBLIGATORY,
LIFNR LIKE MSEG-LIFNR OBLIGATORY.
SELECT-OPTIONS:BUDAT FOR MKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
*NOTHING
AT SELECTION-SCREEN.
CONCATENATE BUDAT+3(6) '21' INTO DATE_LOW.
CONCATENATE BUDAT+11(6) '20' INTO DATE_HIGH.
IF ( DATE_LOW <> BUDAT-LOW ) OR ( DATE_HIGH <> BUDAT-HIGH ).
MESSAGE '查询日期不是一个会计期间!' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM CATALOG.
PERFORM ALVSHOW.
END-OF-SELECTION.
*NOTHING
FORM GETDATA.
* 库存
SELECT
MATNR
LABST
LGORT
LFGJA
LFMON
WERKS
INTO CORRESPONDING FIELDS OF TABLE TEMPTAB1
FROM MARDH
WHERE WERKS = WERKS AND LGORT IN ('M001','M002')
AND ( LFGJA = BUDAT+3(4) AND LFMON = BUDAT+7(2) OR LFGJA = BUDAT+11(4) AND LFMON = BUDAT+15(2) ).
* 入库数量
SELECT
MSEG~MATNR AS MATNR "物料编号
MSEG~MEINS AS MEINS "计量单位
MSEG~MENGE AS LABST
MSEG~BWART AS BWART
MSEG~LGORT AS LGORT
MSEG~LIFNR AS LIFNR
INTO CORRESPONDING FIELDS OF TABLE TEMPTAB2
FROM MSEG
INNER JOIN MKPF ON MKPF~MBLNR = MSEG~MBLNR AND MKPF~MJAHR = MSEG~MJAHR
WHERE MSEG~WERKS = WERKS AND MKPF~BUDAT IN BUDAT
AND MSEG~BWART IN ('105','106','161','162','701','702','261','262')
AND MSEG~MATNR IN ( SELECT EINA~MATNR FROM EINA INNER JOIN MVKE ON EINA~MATNR = MVKE~MATNR WHERE EINA~LOEKZ = '' AND EINA~LIFNR = LIFNR AND MVKE~VKORG = WERKS AND MVKE~MVGR2 = '02' ).
SORT TEMPTAB1 BY MATNR.
SORT TEMPTAB2 BY MATNR.
LOOP AT TEMPTAB2 .
SELECT SINGLE MAKTX INTO TEMPTAB2-MAKTX FROM MAKT WHERE MATNR = TEMPTAB2-MATNR AND SPRAS = '1'.
READ TABLE TEMPTAB4 WITH KEY MATNR = TEMPTAB2-MATNR.
IF SY-SUBRC <> 0.
MOVE-CORRESPONDING TEMPTAB2 TO TEMPTAB4.
APPEND TEMPTAB4.
ENDIF.
COLLECT TEMPTAB2 INTO TEMPTAB3.
ENDLOOP.
SORT TEMPTAB3 BY MATNR.
SORT TEMPTAB4 BY MATNR.
LOOP AT TEMPTAB4.
CLEAR T_OUTPUT.
T_OUTPUT-MATNR = TEMPTAB4-MATNR.
T_OUTPUT-MAKTX = TEMPTAB4-MAKTX.
T_OUTPUT-MEINS = TEMPTAB4-MEINS.
LOOP AT TEMPTAB1 WHERE MATNR = TEMPTAB4-MATNR.
IF TEMPTAB1-LGORT = 'M001' AND TEMPTAB1-LFGJA = BUDAT+3(4) AND TEMPTAB1-LFMON = BUDAT+7(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-G_LABST_S = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M002' AND TEMPTAB1-LFGJA = BUDAT+3(4) AND TEMPTAB1-LFMON = BUDAT+7(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-B_LABST_S = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M001' AND TEMPTAB1-LFGJA = BUDAT+11(4) AND TEMPTAB1-LFMON = BUDAT+15(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-G_LABST_E = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M002' AND TEMPTAB1-LFGJA = BUDAT+11(4) AND TEMPTAB1-LFMON = BUDAT+15(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-B_LABST_E = TEMPTAB1-LABST.
ENDIF.
ENDLOOP.
LOOP AT TEMPTAB3 WHERE MATNR = TEMPTAB4-MATNR.
IF TEMPTAB3-BWART = '161' AND TEMPTAB3-LGORT = 'M002'.
T_OUTPUT-B_RETURN = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '162' AND TEMPTAB3-LGORT = 'M002'.
T_OUTPUT-B_RETURN1 = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '702'.
T_OUTPUT-LOSS_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '701'.
T_OUTPUT-INCOME_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '105' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-GET_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '106' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-GET_LABST1 = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '161' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-G_RETURN = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '162' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-G_RETURN1 = TEMPTAB3-LABST.
ENDIF.
ENDLOOP.
T_OUTPUT-GET_LABST = T_OUTPUT-GET_LABST - T_OUTPUT-GET_LABST1. "入库
T_OUTPUT-G_RETURN = T_OUTPUT-G_RETURN - T_OUTPUT-G_RETURN1."好件退货
T_OUTPUT-B_RETURN = T_OUTPUT-B_RETURN - T_OUTPUT-B_RETURN1.
T_OUTPUT-OUT_LABST = T_OUTPUT-GET_LABST + T_OUTPUT-G_LABST_S - T_OUTPUT-G_RETURN -
T_OUTPUT-G_LABST_E + T_OUTPUT-B_LABST_S - T_OUTPUT-B_LABST_E - T_OUTPUT-B_RETURN - T_OUTPUT-LOSS_LABST + T_OUTPUT-INCOME_LABST.
APPEND T_OUTPUT.
ENDLOOP.
ENDFORM. "GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CATALOG.
W_REPID = SY-REPID.
CLEAR IT_FIELDCAT.
DEFINE FIELDCATSET.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-SELTEXT_L = &2.
WA_FIELDCAT-NO_ZERO = &3.
WA_FIELDCAT-FIX_COLUMN = &4.
* WA_FIELDCAT-DECIMALS_OUT = &5
WA_FIELDCAT-QFIELDNAME = 'MEINS'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
FIELDCATSET 'MATNR' '物料编号' 'X' ''.
FIELDCATSET 'MAKTX' '物料描述' 'X' ''.
FIELDCATSET 'MEINS' '计量单位' '' ''.
FIELDCATSET 'GET_LABST' '本月入库' 'X' ''.
FIELDCATSET 'G_LABST_S' '好件期初' 'X' ''.
FIELDCATSET 'B_LABST_S' '坏件期初' 'X' ''.
FIELDCATSET 'B_LABST_E' '坏件期末' 'X' ''.
FIELDCATSET 'G_RETURN' '好件退货' 'X' ''.
FIELDCATSET 'B_RETURN' '坏件退货' 'X' ''.
FIELDCATSET 'G_LABST_E' '好件期末' 'X' ''.
FIELDCATSET 'LOSS_LABST' '亏' 'X' ''.
FIELDCATSET 'INCOME_LABST' '赢' 'X' '' .
FIELDCATSET 'OUT_LABST' '本月发货' 'X' ''.
ENDFORM. "CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ALVSHOW.
PERFORM LAYOUT_INIT USING LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_GRID_TITLE = ''
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
TABLES
T_OUTTAB = T_OUTPUT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
*& Report ZFIR23
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFIR23.
TYPE-POOLS:SLIS.
TABLES:EINA,MVKE,MKPF,MSEG,MAKT,EKPO.
DATA:LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
W_REPID LIKE SY-REPID.
*DATA:MAKTX LIKE MAKT-MAKTX,
* MVGR2 LIKE MVKE-MVGR2.
DATA:BEGIN OF T_OUTPUT OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
G_LABST_S LIKE MARDH-LABST,"好件期初库存
B_LABST_S LIKE MARDH-LABST,"坏件期初库存
G_LABST_E LIKE MARDH-LABST,"好件期末库存
B_LABST_E LIKE MARDH-LABST,"坏件期末库存
G_RETURN LIKE MARDH-LABST,"好件退货
G_RETURN1 LIKE MARDH-LABST,"好件退货冲销
B_RETURN LIKE MARDH-LABST,"坏件退货
B_RETURN1 LIKE MARDH-LABST,"坏件退货冲销
LOSS_LABST LIKE MARDH-LABST,"盘亏
INCOME_LABST LIKE MARDH-LABST,"盘盈
GET_LABST LIKE MARDH-LABST,"入库
GET_LABST1 LIKE MARDH-LABST,"入库冲销
OUT_LABST LIKE MARDH-LABST,"出库
END OF T_OUTPUT.
DATA:BEGIN OF TEMPTAB OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
END OF TEMPTAB.
DATA:BEGIN OF TEMPTAB1 OCCURS 0,
MATNR LIKE MARDH-MATNR,
LABST LIKE MARDH-LABST,"库存
LGORT LIKE MARDH-LGORT,"库位
LFGJA LIKE MARDH-LFGJA,"年
LFMON LIKE MARDH-LFMON,"月
WERKS LIKE MARDH-WERKS,
END OF TEMPTAB1.
DATA:BEGIN OF TEMPTAB2 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB2.
DATA:BEGIN OF TEMPTAB3 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,"数量
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB3.
DATA:BEGIN OF TEMPTAB4 OCCURS 0,
MATNR LIKE MAKT-MATNR,"物料编号
MAKTX LIKE MAKT-MAKTX,"物料描述
MEINS LIKE EINA-MEINS,"计量单位
LABST LIKE MARDH-LABST,"数量
BWART LIKE MSEG-BWART,"移动类型
LGORT LIKE MSEG-LGORT,"库位
MVGR2 LIKE MVKE-MVGR2,
LIFNR LIKE MSEG-LIFNR,
END OF TEMPTAB4.
DATA:BEGIN OF TEMPTAB5 OCCURS 0,
MATNR LIKE MVKE-MATNR,"物料编号
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
MVGR2 LIKE MVKE-MVGR2,
END OF TEMPTAB5.
DATA:DATE_LOW LIKE MKPF-BUDAT,
DATE_HIGH LIKE MKPF-BUDAT.
DATA:S_LIFNR LIKE MSEG-LIFNR.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:WERKS LIKE MSEG-WERKS OBLIGATORY,
LIFNR LIKE MSEG-LIFNR OBLIGATORY.
SELECT-OPTIONS:BUDAT FOR MKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
*NOTHING
AT SELECTION-SCREEN.
CONCATENATE BUDAT+3(6) '21' INTO DATE_LOW.
CONCATENATE BUDAT+11(6) '20' INTO DATE_HIGH.
IF ( DATE_LOW <> BUDAT-LOW ) OR ( DATE_HIGH <> BUDAT-HIGH ).
MESSAGE '查询日期不是一个会计期间!' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM CATALOG.
PERFORM ALVSHOW.
END-OF-SELECTION.
*NOTHING
FORM GETDATA.
* 库存
SELECT
MATNR
LABST
LGORT
LFGJA
LFMON
WERKS
INTO CORRESPONDING FIELDS OF TABLE TEMPTAB1
FROM MARDH
WHERE WERKS = WERKS AND LGORT IN ('M001','M002')
AND ( LFGJA = BUDAT+3(4) AND LFMON = BUDAT+7(2) OR LFGJA = BUDAT+11(4) AND LFMON = BUDAT+15(2) ).
* 入库数量
SELECT
MSEG~MATNR AS MATNR "物料编号
MSEG~MEINS AS MEINS "计量单位
MSEG~MENGE AS LABST
MSEG~BWART AS BWART
MSEG~LGORT AS LGORT
MSEG~LIFNR AS LIFNR
INTO CORRESPONDING FIELDS OF TABLE TEMPTAB2
FROM MSEG
INNER JOIN MKPF ON MKPF~MBLNR = MSEG~MBLNR AND MKPF~MJAHR = MSEG~MJAHR
WHERE MSEG~WERKS = WERKS AND MKPF~BUDAT IN BUDAT
AND MSEG~BWART IN ('105','106','161','162','701','702','261','262')
AND MSEG~MATNR IN ( SELECT EINA~MATNR FROM EINA INNER JOIN MVKE ON EINA~MATNR = MVKE~MATNR WHERE EINA~LOEKZ = '' AND EINA~LIFNR = LIFNR AND MVKE~VKORG = WERKS AND MVKE~MVGR2 = '02' ).
SORT TEMPTAB1 BY MATNR.
SORT TEMPTAB2 BY MATNR.
LOOP AT TEMPTAB2 .
SELECT SINGLE MAKTX INTO TEMPTAB2-MAKTX FROM MAKT WHERE MATNR = TEMPTAB2-MATNR AND SPRAS = '1'.
READ TABLE TEMPTAB4 WITH KEY MATNR = TEMPTAB2-MATNR.
IF SY-SUBRC <> 0.
MOVE-CORRESPONDING TEMPTAB2 TO TEMPTAB4.
APPEND TEMPTAB4.
ENDIF.
COLLECT TEMPTAB2 INTO TEMPTAB3.
ENDLOOP.
SORT TEMPTAB3 BY MATNR.
SORT TEMPTAB4 BY MATNR.
LOOP AT TEMPTAB4.
CLEAR T_OUTPUT.
T_OUTPUT-MATNR = TEMPTAB4-MATNR.
T_OUTPUT-MAKTX = TEMPTAB4-MAKTX.
T_OUTPUT-MEINS = TEMPTAB4-MEINS.
LOOP AT TEMPTAB1 WHERE MATNR = TEMPTAB4-MATNR.
IF TEMPTAB1-LGORT = 'M001' AND TEMPTAB1-LFGJA = BUDAT+3(4) AND TEMPTAB1-LFMON = BUDAT+7(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-G_LABST_S = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M002' AND TEMPTAB1-LFGJA = BUDAT+3(4) AND TEMPTAB1-LFMON = BUDAT+7(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-B_LABST_S = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M001' AND TEMPTAB1-LFGJA = BUDAT+11(4) AND TEMPTAB1-LFMON = BUDAT+15(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-G_LABST_E = TEMPTAB1-LABST.
ENDIF.
IF TEMPTAB1-LGORT = 'M002' AND TEMPTAB1-LFGJA = BUDAT+11(4) AND TEMPTAB1-LFMON = BUDAT+15(2) AND TEMPTAB1-WERKS = WERKS.
T_OUTPUT-B_LABST_E = TEMPTAB1-LABST.
ENDIF.
ENDLOOP.
LOOP AT TEMPTAB3 WHERE MATNR = TEMPTAB4-MATNR.
IF TEMPTAB3-BWART = '161' AND TEMPTAB3-LGORT = 'M002'.
T_OUTPUT-B_RETURN = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '162' AND TEMPTAB3-LGORT = 'M002'.
T_OUTPUT-B_RETURN1 = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '702'.
T_OUTPUT-LOSS_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '701'.
T_OUTPUT-INCOME_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '105' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-GET_LABST = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '106' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-GET_LABST1 = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '161' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-G_RETURN = TEMPTAB3-LABST.
ENDIF.
IF TEMPTAB3-BWART = '162' AND TEMPTAB3-LGORT = 'M001'.
T_OUTPUT-G_RETURN1 = TEMPTAB3-LABST.
ENDIF.
ENDLOOP.
T_OUTPUT-GET_LABST = T_OUTPUT-GET_LABST - T_OUTPUT-GET_LABST1. "入库
T_OUTPUT-G_RETURN = T_OUTPUT-G_RETURN - T_OUTPUT-G_RETURN1."好件退货
T_OUTPUT-B_RETURN = T_OUTPUT-B_RETURN - T_OUTPUT-B_RETURN1.
T_OUTPUT-OUT_LABST = T_OUTPUT-GET_LABST + T_OUTPUT-G_LABST_S - T_OUTPUT-G_RETURN -
T_OUTPUT-G_LABST_E + T_OUTPUT-B_LABST_S - T_OUTPUT-B_LABST_E - T_OUTPUT-B_RETURN - T_OUTPUT-LOSS_LABST + T_OUTPUT-INCOME_LABST.
APPEND T_OUTPUT.
ENDLOOP.
ENDFORM. "GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CATALOG.
W_REPID = SY-REPID.
CLEAR IT_FIELDCAT.
DEFINE FIELDCATSET.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-SELTEXT_L = &2.
WA_FIELDCAT-NO_ZERO = &3.
WA_FIELDCAT-FIX_COLUMN = &4.
* WA_FIELDCAT-DECIMALS_OUT = &5
WA_FIELDCAT-QFIELDNAME = 'MEINS'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
FIELDCATSET 'MATNR' '物料编号' 'X' ''.
FIELDCATSET 'MAKTX' '物料描述' 'X' ''.
FIELDCATSET 'MEINS' '计量单位' '' ''.
FIELDCATSET 'GET_LABST' '本月入库' 'X' ''.
FIELDCATSET 'G_LABST_S' '好件期初' 'X' ''.
FIELDCATSET 'B_LABST_S' '坏件期初' 'X' ''.
FIELDCATSET 'B_LABST_E' '坏件期末' 'X' ''.
FIELDCATSET 'G_RETURN' '好件退货' 'X' ''.
FIELDCATSET 'B_RETURN' '坏件退货' 'X' ''.
FIELDCATSET 'G_LABST_E' '好件期末' 'X' ''.
FIELDCATSET 'LOSS_LABST' '亏' 'X' ''.
FIELDCATSET 'INCOME_LABST' '赢' 'X' '' .
FIELDCATSET 'OUT_LABST' '本月发货' 'X' ''.
ENDFORM. "CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ALVSHOW.
PERFORM LAYOUT_INIT USING LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_GRID_TITLE = ''
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
TABLES
T_OUTTAB = T_OUTPUT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
- 对账单
- 支付宝处理对账单
- 微信对账单处理
- 信用卡对账单你读懂了吗?
- 微信支付开发(3) 对账单
- golang下载支付宝对账单
- 比对两个表的账单是否一致
- ERP 学习笔记 - 发票及对账单效验
- 教您读懂这张社保对账单
- Python3实现微信支付对账单下载导出CSV
- 微信支付对账单的详细说明
- 微信对账单接口的使用以及对接口数据的解析方式
- OFX账单
- 人生账单
- R12现金管理系统:银行对账单(Bank Statement)的标准处理流程
- 对ch08.csv-消费账单进行简单的分析及可视化
- 将.zip文件转换成字符串进行传送(以支付宝对账单为例)
- 金蝶KIS商贸版开发往来对账单明细表[无辅助属性批号]
- SQL 关于多个表连接问题
- 本地可以连接sde,远程无法连接sde解决方案
- 批处理怎样全盘获取指定文件第一个路径?
- 图学PowerBuilder ---- 创建一个应用
- Mysql复制表结构、表数据
- 对账单
- Android中图像变换Matrix的原理、代码验证和应用
- c1-3-main-frm_11000-11199渲染日志
- 使用ATL 窗口类
- 2011感动人物高考素材
- 用DateTime.ToString(string format)输出不同格式的日期
- maven 指定jdk运行 非pom.xml
- c1-3-main-frm_11200-11399渲染日志
- OpenCV2.2里CImage(CvvImage)取消后的解决办法