*&---------------------------------------------------------------------*
*& Report ZCUSTOMER_OP_SUMMARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCUSTOMER_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_KUNNR FOR BSEG-KUNNR.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
KUNNR TYPE BSEG-KUNNR,
SAKNR TYPE BSEG-SAKNR,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
END OF TY_BSEG.
DATA: ITAB TYPE STANDARD TABLE OF TY_BSEG WITH HEADER LINE.
DATA: WA TYPE TY_BSEG.
DATA: V_COUNT TYPE I.
DATA: X_BUKRS TYPE BSEG-BUKRS.
DATA: X_KUNNR TYPE BSEG-KUNNR.
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 KUNNR GSBER SAKNR HKONT FROM BSID INTO (V_COUNT, X_DMBTR, X_BUKRS, X_KUNNR, X_GSBER, X_SAKNR, X_HKONT)
WHERE BUKRS = 'RCFL' AND
SAKNR IN V_SAKNR AND
KUNNR IN V_KUNNR AND
GSBER IN V_GSBER
GROUP BY BUKRS KUNNR GSBER SAKNR HKONT
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-KUNNR = X_KUNNR.
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.
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 = 'KUNNR'.
FIELDCATALOG-SELTEXT_M = 'Customer'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SAKNR'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'Sub-GL Account'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 7.
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 ZCUSTOMER_OP_SUMMARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCUSTOMER_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_KUNNR FOR BSEG-KUNNR.
TYPES : BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
KUNNR TYPE BSEG-KUNNR,
SAKNR TYPE BSEG-SAKNR,
HKONT TYPE BSEG-HKONT,
GSBER TYPE BSEG-GSBER,
COUNT TYPE I,
DMBTR TYPE BSEG-DMBTR,
END OF TY_BSEG.
DATA: ITAB TYPE STANDARD TABLE OF TY_BSEG WITH HEADER LINE.
DATA: WA TYPE TY_BSEG.
DATA: V_COUNT TYPE I.
DATA: X_BUKRS TYPE BSEG-BUKRS.
DATA: X_KUNNR TYPE BSEG-KUNNR.
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 KUNNR GSBER SAKNR HKONT FROM BSID INTO (V_COUNT, X_DMBTR, X_BUKRS, X_KUNNR, X_GSBER, X_SAKNR, X_HKONT)
WHERE BUKRS = 'RCFL' AND
SAKNR IN V_SAKNR AND
KUNNR IN V_KUNNR AND
GSBER IN V_GSBER
GROUP BY BUKRS KUNNR GSBER SAKNR HKONT
ORDER BY GSBER.
WA-BUKRS = X_BUKRS.
WA-KUNNR = X_KUNNR.
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.
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 = 'KUNNR'.
FIELDCATALOG-SELTEXT_M = 'Customer'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'Business Area'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SAKNR'.
FIELDCATALOG-SELTEXT_M = 'GL Account'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'Sub-GL Account'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'COUNT'.
FIELDCATALOG-SELTEXT_M = 'Open Item'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Total Amount'.
FIELDCATALOG-COL_POS = 7.
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