*&---------------------------------------------------------------------*
*& Report ZVENDOR_OP_SUMMARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZGL_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_HKONT FOR BSEG-HKONT.
SELECT-OPTIONS : V_GSBER FOR BSEG-GSBER.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
SHKZG TYPE SHKZG,
SGTXT TYPE SGTXT,
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.
DATA: X_SHKZG TYPE BSEG-SHKZG.
SELECT COUNT(*) SUM( DMBTR ) BUKRS GSBER HKONT SHKZG FROM BSIS INTO (V_COUNT, X_DMBTR, X_BUKRS, X_GSBER, X_HKONT, X_SHKZG)
WHERE BUKRS = 'RCFL' AND
HKONT IN V_HKONT AND
GSBER IN V_GSBER
GROUP BY BUKRS GSBER HKONT SHKZG
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-GSBER = X_GSBER.
WA-HKONT = X_HKONT.
WA-COUNT = V_COUNT.
WA-DMBTR = X_DMBTR.
WA-SHKZG = X_SHKZG.
IF X_SHKZG EQ 'H'.
WA-SGTXT = 'Credit'.
ENDIF.
IF X_SHKZG EQ 'S'.
WA-SGTXT = 'Debit'.
ENDIF.
APPEND WA TO ITAB.
ENDSELECT.
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 = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Credit/Debit'.
FIELDCATALOG-COL_POS = 6.
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 ZGL_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_HKONT FOR BSEG-HKONT.
SELECT-OPTIONS : V_GSBER FOR BSEG-GSBER.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
SHKZG TYPE SHKZG,
SGTXT TYPE SGTXT,
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.
DATA: X_SHKZG TYPE BSEG-SHKZG.
SELECT COUNT(*) SUM( DMBTR ) BUKRS GSBER HKONT SHKZG FROM BSIS INTO (V_COUNT, X_DMBTR, X_BUKRS, X_GSBER, X_HKONT, X_SHKZG)
WHERE BUKRS = 'RCFL' AND
HKONT IN V_HKONT AND
GSBER IN V_GSBER
GROUP BY BUKRS GSBER HKONT SHKZG
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-GSBER = X_GSBER.
WA-HKONT = X_HKONT.
WA-COUNT = V_COUNT.
WA-DMBTR = X_DMBTR.
WA-SHKZG = X_SHKZG.
IF X_SHKZG EQ 'H'.
WA-SGTXT = 'Credit'.
ENDIF.
IF X_SHKZG EQ 'S'.
WA-SGTXT = 'Debit'.
ENDIF.
APPEND WA TO ITAB.
ENDSELECT.
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 = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Credit/Debit'.
FIELDCATALOG-COL_POS = 6.
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