*&---------------------------------------------------------------------*
*& Report ZVENDOR_OP_SUMMARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZVENDOR_OP_SUMMARY.
TABLES: BSEG, BKPF.
TYPE-POOLS : SLIS.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
GT_EVENTS TYPE SLIS_T_EVENT,
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
DATA: V_BELNR TYPE BSEG-BELNR.
SELECT-OPTIONS : V_SAKNR FOR BSEG-SAKNR.
SELECT-OPTIONS : V_GSBER FOR BSEG-GSBER.
SELECT-OPTIONS : V_LIFNR FOR BSEG-LIFNR.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
LIFNR TYPE BSEG-LIFNR,
SAKNR TYPE BSEG-SAKNR,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
NAME1 TYPE NAME1_GP,
END OF TY_BSEG.
DATA: ITAB TYPE STANDARD TABLE OF TY_BSEG WITH HEADER LINE.
DATA: WA TYPE TY_BSEG.
DATA: IT_BSIK TYPE STANDARD TABLE OF BSIK WITH HEADER LINE.
DATA: WA_BSIK LIKE LINE OF IT_BSIK.
DATA: V_COUNT TYPE I.
DATA: X_BUKRS TYPE BSEG-BUKRS.
DATA: X_LIFNR TYPE BSEG-LIFNR.
DATA: X_GSBER TYPE BSEG-GSBER.
DATA: X_SAKNR TYPE BSEG-SAKNR.
DATA: X_HKONT TYPE BSEG-HKONT.
DATA: X_DMBTR TYPE BSEG-DMBTR.
SELECT COUNT(*) SUM( DMBTR ) BUKRS LIFNR GSBER SAKNR HKONT FROM BSIK INTO (V_COUNT, X_DMBTR, X_BUKRS, X_LIFNR, X_GSBER, X_SAKNR, X_HKONT)
WHERE BUKRS = 'RCFL' AND
SAKNR IN V_SAKNR AND
LIFNR IN V_LIFNR AND
GSBER IN V_GSBER
GROUP BY BUKRS LIFNR GSBER SAKNR HKONT
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-LIFNR = X_LIFNR.
WA-GSBER = X_GSBER.
WA-SAKNR = X_SAKNR.
WA-HKONT = X_HKONT.
WA-COUNT = V_COUNT.
WA-DMBTR = X_DMBTR.
APPEND WA TO ITAB.
ENDSELECT.
DATA: V_NAME1 TYPE NAME1_GP.
LOOP AT ITAB INTO WA.
SELECT NAME1 FROM LFA1 INTO (V_NAME1)
WHERE LIFNR = WA-LIFNR.
WA-NAME1 = V_NAME1.
MODIFY ITAB FROM WA.
ENDSELECT.
ENDLOOP.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Company Code'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'LIFNR'.
FIELDCATALOG-SELTEXT_M = 'Vendor'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'Vendor Name'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SAKNR'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'Sub-GL Account'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM. " BUILD_LAYOUT
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "SEE FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_GRID_TITLE = OUTTEXT
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
* IT_SPECIAL_GROUPS = GD_TABGROUP
IT_EVENTS = GT_EVENTS
IS_PRINT = GD_PRNTPARAMS
I_SAVE = 'X'
* IS_VARIANT = Z_TEMPLATE
TABLES
T_OUTTAB = ITAB
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. " DISPLAY_ALV_REPORT
*& Report ZVENDOR_OP_SUMMARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZVENDOR_OP_SUMMARY.
TABLES: BSEG, BKPF.
TYPE-POOLS : SLIS.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
GT_EVENTS TYPE SLIS_T_EVENT,
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
DATA: V_BELNR TYPE BSEG-BELNR.
SELECT-OPTIONS : V_SAKNR FOR BSEG-SAKNR.
SELECT-OPTIONS : V_GSBER FOR BSEG-GSBER.
SELECT-OPTIONS : V_LIFNR FOR BSEG-LIFNR.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
LIFNR TYPE BSEG-LIFNR,
SAKNR TYPE BSEG-SAKNR,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
NAME1 TYPE NAME1_GP,
END OF TY_BSEG.
DATA: ITAB TYPE STANDARD TABLE OF TY_BSEG WITH HEADER LINE.
DATA: WA TYPE TY_BSEG.
DATA: IT_BSIK TYPE STANDARD TABLE OF BSIK WITH HEADER LINE.
DATA: WA_BSIK LIKE LINE OF IT_BSIK.
DATA: V_COUNT TYPE I.
DATA: X_BUKRS TYPE BSEG-BUKRS.
DATA: X_LIFNR TYPE BSEG-LIFNR.
DATA: X_GSBER TYPE BSEG-GSBER.
DATA: X_SAKNR TYPE BSEG-SAKNR.
DATA: X_HKONT TYPE BSEG-HKONT.
DATA: X_DMBTR TYPE BSEG-DMBTR.
SELECT COUNT(*) SUM( DMBTR ) BUKRS LIFNR GSBER SAKNR HKONT FROM BSIK INTO (V_COUNT, X_DMBTR, X_BUKRS, X_LIFNR, X_GSBER, X_SAKNR, X_HKONT)
WHERE BUKRS = 'RCFL' AND
SAKNR IN V_SAKNR AND
LIFNR IN V_LIFNR AND
GSBER IN V_GSBER
GROUP BY BUKRS LIFNR GSBER SAKNR HKONT
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-LIFNR = X_LIFNR.
WA-GSBER = X_GSBER.
WA-SAKNR = X_SAKNR.
WA-HKONT = X_HKONT.
WA-COUNT = V_COUNT.
WA-DMBTR = X_DMBTR.
APPEND WA TO ITAB.
ENDSELECT.
DATA: V_NAME1 TYPE NAME1_GP.
LOOP AT ITAB INTO WA.
SELECT NAME1 FROM LFA1 INTO (V_NAME1)
WHERE LIFNR = WA-LIFNR.
WA-NAME1 = V_NAME1.
MODIFY ITAB FROM WA.
ENDSELECT.
ENDLOOP.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Company Code'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'LIFNR'.
FIELDCATALOG-SELTEXT_M = 'Vendor'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'Vendor Name'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SAKNR'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'Sub-GL Account'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM. " BUILD_LAYOUT
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "SEE FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_GRID_TITLE = OUTTEXT
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
* IT_SPECIAL_GROUPS = GD_TABGROUP
IT_EVENTS = GT_EVENTS
IS_PRINT = GD_PRNTPARAMS
I_SAVE = 'X'
* IS_VARIANT = Z_TEMPLATE
TABLES
T_OUTTAB = ITAB
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. " DISPLAY_ALV_REPORT
No comments:
Post a Comment