FORM. GET_BTR USING P_TYPE TYPE C.
DATA:BTRCOND(200) TYPE C,
IBTRCOND LIKE TABLE OF BTRCOND(200).
DATA:L_LENGTH TYPE I.
L_LENGTH = 10 - L_SAKLN.
IF L_LENGTH < 0.
L_LENGTH = 0 .
ENDIF.
IF P_TYPE = 'MAT'.
RANGES R_KSTAR FOR COEP-KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '0000413000'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '0000413010'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '5401113000'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '5401113010'.
APPEND R_KSTAR.
SELECT OBJNR SUM( WKGBTR )
INTO (ITAB_BTR_MAT-OBJNR,ITAB_BTR_MAT-WKGBTR)
FROM COEP
WHERE OBJNR IN R_OBJNR_1 AND WERKS = P_WERKS
AND GJAHR = P_GJAHR AND PERIO = P_PERIO
AND KSTAR IN R_KSTAR
GROUP BY OBJNR.
APPEND ITAB_BTR_MAT.
ENDSELECT.
CLEAR R_KSTAR.
REFRESH R_KSTAR.
ELSEIF P_TYPE = 'SUB'.
BTRCOND = '70'.
DO L_LENGTH TIMES.
CONCATENATE '0' BTRCOND INTO BTRCOND.
ENDDO.
CONCATENATE ' KSTAR LIKE ''' BTRCOND'%' '''' INTO BTRCOND.
APPEND BTRCOND TO IBTRCOND.
SELECT OBJNR SUM( WKGBTR )
INTO (ITAB_BTR_SUB-OBJNR,ITAB_BTR_SUB-WKGBTR)
FROM COEP
WHERE OBJNR IN R_OBJNR_1
AND GJAHR = P_GJAHR AND PERIO = P_PERIO
AND (IBTRCOND)
GROUP BY OBJNR.
APPEND ITAB_BTR_SUB.
ENDSELECT.
ELSE.
BTRCOND = '79'.
DO L_LENGTH TIMES.
CONCATENATE '0' BTRCOND INTO BTRCOND.
ENDDO.
CONCATENATE ' KSTAR LIKE ''' BTRCOND'%' '''' INTO BTRCOND.
APPEND BTRCOND TO IBTRCOND.
SELECT OBJNR SUM( WKGBTR )
INTO (ITAB_BTR_OVH-OBJNR,ITAB_BTR_OVH-WKGBTR)
FROM COEP
WHERE OBJNR IN R_OBJNR_1
AND GJAHR = P_GJAHR AND PERIO = P_PERIO
AND (IBTRCOND)
GROUP BY OBJNR.
APPEND ITAB_BTR_OVH.
ENDSELECT.
ENDIF.
ENDFORM.
FORM. GET_WKG_FIRST USING P_FIELD TYPE C.
DATA:COND(200) TYPE C,
ICOND LIKE TABLE OF COND(200).
DATA:LINE(6) TYPE C,
LIST LIKE TABLE OF LINE(6).
LINE = P_FIELD.
APPEND LINE TO LIST.
CONCATENATE P_FIELD ' > 0 ' INTO COND .
APPEND COND TO ICOND.
CONCATENATE ' AND GJAHR = ''' P_GJAHR '''' INTO COND.
APPEND COND TO ICOND.
CONCATENATE ' AND ZLNID IN (''' 'MAT' ''',''' 'SUB' ''',''' 'OVH'
''')'
INTO COND.
APPEND COND TO ICOND.
CASE P_FIELD.
WHEN 'WKG001'.
SELECT OBJNR ZLNID SUM( WKG001 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG002'.
SELECT OBJNR ZLNID SUM( WKG002 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG003'.
SELECT OBJNR ZLNID SUM( WKG003 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG004'.
SELECT OBJNR ZLNID SUM( WKG004 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG005'.
SELECT OBJNR ZLNID SUM( WKG005 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG006'.
SELECT OBJNR ZLNID SUM( WKG006 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG007'.
SELECT OBJNR ZLNID SUM( WKG007 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG008'.
SELECT OBJNR ZLNID SUM( WKG008 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG009'.
SELECT OBJNR ZLNID SUM( WKG009 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG010'.
SELECT OBJNR ZLNID SUM( WKG010 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG011'.
SELECT OBJNR ZLNID SUM( WKG011 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
WHEN 'WKG012'.
SELECT OBJNR ZLNID SUM( WKG012 ) AS WKGQTY
INTO (ITMP-OBJNR,ITMP-ZLNID,ITMP-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP.
ENDSELECT.
ENDCASE.
ENDFORM. " GET_WKG
FORM. GET_WKG_END USING P_FIELD TYPE C.
DATA:COND(200) TYPE C,
ICOND LIKE TABLE OF COND(200).
DATA:LINE(6) TYPE C,
LIST LIKE TABLE OF LINE(6).
LINE = P_FIELD.
APPEND LINE TO LIST.
CONCATENATE P_FIELD ' < 0 ' INTO COND .
APPEND COND TO ICOND.
CONCATENATE ' AND GJAHR = ''' P_GJAHR '''' INTO COND.
APPEND COND TO ICOND.
CONCATENATE ' AND ZLNID IN (''' 'MAT' ''',''' 'SUB' ''',''' 'OVH'
''')' INTO COND.
APPEND COND TO ICOND.
CASE P_FIELD.
WHEN 'WKG001'.
SELECT OBJNR ZLNID SUM( WKG001 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG002'.
SELECT OBJNR ZLNID SUM( WKG002 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG003'.
SELECT OBJNR ZLNID SUM( WKG003 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG004'.
SELECT OBJNR ZLNID SUM( WKG004 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG005'.
SELECT OBJNR ZLNID SUM( WKG005 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG006'.
SELECT OBJNR ZLNID SUM( WKG006 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG007'.
SELECT OBJNR ZLNID SUM( WKG007 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG008'.
SELECT OBJNR ZLNID SUM( WKG008 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG009'.
SELECT OBJNR ZLNID SUM( WKG009 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG010'.
SELECT OBJNR ZLNID SUM( WKG010 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG011'.
SELECT OBJNR ZLNID SUM( WKG011 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
WHEN 'WKG012'.
SELECT OBJNR ZLNID SUM( WKG012 ) AS WKGQTY
INTO (ITMP_E-OBJNR,ITMP_E-ZLNID,ITMP_E-WKGQTY)
FROM COSB
WHERE (ICOND) AND OBJNR IN R_OBJNR_1
GROUP BY OBJNR ZLNID.
APPEND ITMP_E.
ENDSELECT.
ENDCASE.
ENDFORM. " GET_WKG
FORM. GET_MEG_WKG.
RANGES R_KSTAR FOR COEP-KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '0000413200'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '0000413100'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '0000413310'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '5401113200'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '5401113100'.
APPEND R_KSTAR.
R_KSTAR-SIGN = 'I'.
R_KSTAR-OPTION = 'EQ'.
R_KSTAR-LOW = '5401113310'.
APPEND R_KSTAR.
SELECT OBJNR SUM( MEGBTR ) SUM( WKGBTR )
INTO (ITAB_MEG_WKG-OBJNR,ITAB_MEG_WKG-MEGBTR,
ITAB_MEG_WKG-WKGBTR)
FROM COEP
WHERE OBJNR IN R_OBJNR_1
AND GJAHR = P_GJAHR AND WERKS = P_WERKS
AND PERIO = P_PERIO AND KSTAR IN R_KSTAR
GROUP BY OBJNR.
APPEND ITAB_MEG_WKG.
ENDSELECT.
CLEAR R_KSTAR.
ENDFORM.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666309/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666309/