Tuesday, February 9, 2016

List of Customer Open Items

*&---------------------------------------------------------------------*
*& 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