*&---------------------------------------------------------------------*
*& Report ZFI_FB60
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFI_FB60.
TABLES : BKPF,BSEG,BSET,LFA1,FAGLFLEXA,SKAT.
TYPE-POOLS SLIS .
TYPES:BEGIN OF TY_BKPF,
BUKRS TYPE BKPF-BUKRS,
BELNR TYPE BKPF-BELNR,
GJAHR TYPE BKPF-GJAHR,
BLART TYPE BKPF-BLART,
BLDAT TYPE BKPF-BLDAT,
BUDAT TYPE BKPF-BUDAT,
XBLNR TYPE BKPF-XBLNR,
END OF TY_BKPF.
TYPES:BEGIN OF TY_BSEG,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
BUZEI TYPE BSEG-BUZEI,
PRCTR TYPE BSEG-PRCTR,
LIFNR TYPE BSEG-LIFNR,
KOART TYPE BSEG-KOART,
TXGRP TYPE BSEG-TXGRP,
HKONT TYPE BSEG-HKONT,
DMBTR TYPE BSEG-DMBTR,
END OF TY_BSEG.
TYPES:BEGIN OF TY_BSET,
BUKRS TYPE BSET-BUKRS,
BELNR TYPE BSET-BELNR,
BUZEI TYPE BSET-BUZEI,
GJAHR TYPE BSET-GJAHR,
MWSKZ TYPE BSET-MWSKZ,
HKONT TYPE BSET-HKONT,
SHKZG TYPE BSET-SHKZG,
FWBAS TYPE BSET-FWBAS,
KSCHL TYPE BSET-KSCHL,
HWSTE TYPE BSET-HWSTE,
TXGRP TYPE BSET-TXGRP,
END OF TY_BSET.
TYPES:BEGIN OF TY_LFA1,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
END OF TY_LFA1.
TYPES:BEGIN OF TY_SKAT,
SAKNR TYPE SKAT-SAKNR,
TXT50 TYPE SKAT-TXT50,
END OF TY_SKAT.
TYPES : BEGIN OF TY_FAGLFLEXA,
RBUKRS TYPE FAGLFLEXA-RBUKRS,
BUDAT TYPE FAGLFLEXA-BUDAT,
RYEAR TYPE FAGLFLEXA-RYEAR,
BELNR TYPE FAGLFLEXA-BELNR,
BUZEI TYPE FAGLFLEXA-BUZEI,
RACCT TYPE FAGLFLEXA-RACCT,
PRCTR TYPE FAGLFLEXA-PRCTR,
PPRCTR TYPE FAGLFLEXA-PPRCTR,
HSL TYPE FAGLFLEXA-HSL,
DRCRK TYPE FAGLFLEXA-DRCRK,
END OF TY_FAGLFLEXA.
TYPES:BEGIN OF TY_FINAL,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
PRCTR TYPE BSEG-PRCTR,
KOART TYPE BSEG-KOART,
BUZEI TYPE BSEG-BUZEI,
LIFNR TYPE BSEG-LIFNR,
TXGRP TYPE BSEG-TXGRP,
DMBTR TYPE BSEG-DMBTR,
HKONT1 TYPE BSEG-HKONT,
HKONT2 TYPE BSEG-HKONT,
HKONT TYPE BSET-HKONT,
BLDAT TYPE BKPF-BLDAT,
BUDAT TYPE BKPF-BUDAT,
XBLNR TYPE BKPF-XBLNR,
BUZEI1 TYPE BSET-BUZEI,
MWSKZ TYPE BSET-MWSKZ,
SHKZG TYPE BSET-SHKZG,
FWBAS TYPE BSET-FWBAS,
KSCHL TYPE BSET-KSCHL,
HWSTE TYPE BSET-HWSTE,
NAME1 TYPE LFA1-NAME1,
JICG TYPE BSET-HWSTE,
JISG TYPE BSET-HWSTE,
JIIG TYPE BSET-HWSTE,
TOTAL TYPE BSET-FWBAS,
RACCT TYPE FAGLFLEXA-RACCT,
DOCNR TYPE FAGLFLEXA-DOCNR,
* BUDAT TYPE FAGLFLEXA-BUDAT,
RYEAR TYPE FAGLFLEXA-RYEAR,
PRCTR1 TYPE FAGLFLEXA-PRCTR,
PPRCTR TYPE FAGLFLEXA-PPRCTR,
SAKNR TYPE SKAT-SAKNR,
TXT50 TYPE SKAT-TXT50,
END OF TY_FINAL.
DATA : IT_BKPF TYPE TABLE OF TY_BKPF .
DATA : WA_BKPF TYPE TY_BKPF .
DATA:IT_BSEG TYPE TABLE OF TY_BSEG,
WA_BSEG TYPE TY_BSEG.
DATA:IT_BSET TYPE TABLE OF TY_BSET,
WA_BSET TYPE TY_BSET.
DATA:IT_LFA1 TYPE TABLE OF TY_LFA1,
WA_LFA1 TYPE TY_LFA1.
DATA:IT_SKAT TYPE TABLE OF TY_SKAT,
WA_SKAT TYPE TY_SKAT.
DATA:IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
DATA:IT_BSET1 TYPE TABLE OF TY_BSET,
WA_BSET1 TYPE TY_BSET.
DATA : IT_FAGLFLEXA TYPE TABLE OF TY_FAGLFLEXA,
WA_FAGLFLEXA TYPE TY_FAGLFLEXA.
DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF IT_FCAT .
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_BUKRS FOR BKPF-BUKRS,
S_BUDAT FOR BKPF-BUDAT,
S_PRCTR FOR BSEG-PRCTR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM PROCESS_DATA.
PERFORM CREATE_FCAT.
END-OF-SELECTION .
PERFORM DISP_ALV .
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT BUKRS
BELNR
GJAHR
BLART
BLDAT
BUDAT
XBLNR
FROM BKPF INTO CORRESPONDING FIELDS OF TABLE IT_BKPF WHERE BUKRS IN S_BUKRS
AND BUDAT IN S_BUDAT
AND BLART IN ('KG','KR')
.
SELECT BUKRS
BELNR
BUZEI
GJAHR
prctr
KOART
LIFNR
TXGRP
HKONT
DMBTR
FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG FOR ALL ENTRIES IN IT_BKPF WHERE BELNR = IT_BKPF-BELNR
AND BUKRS = IT_BKPF-BUKRS
AND GJAHR = IT_BKPF-GJAHR
AND PRCTR IN S_PRCTR.
SELECT BUKRS
BELNR
BUZEI
GJAHR
MWSKZ
HKONT
SHKZG
FWBAS
KSCHL
HWSTE
TXGRP
FROM BSET INTO CORRESPONDING FIELDS OF TABLE IT_BSET FOR ALL ENTRIES IN IT_BSEG WHERE BELNR = IT_BSEG-BELNR
AND BUKRS = IT_BSEG-BUKRS
AND GJAHR = IT_BSEG-GJAHR
* AND TXGRP = IT_BSEG-TXGRP
AND BUZEI = IT_BSEG-BUZEI
AND KSCHL IN ( 'JICG' , 'JISG' , 'JIIG' ).
SELECT LIFNR
NAME1
FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE IT_LFA1 FOR ALL ENTRIES IN IT_BSEG WHERE LIFNR = IT_BSEG-LIFNR
.
SELECT SAKNR
TXT50
FROM SKAT INTO CORRESPONDING FIELDS OF TABLE IT_SKAT FOR ALL ENTRIES IN IT_BSEG WHERE SAKNR = IT_BSEG-HKONT
AND SPRAS = 'EN'
.
SELECT RBUKRS
BUDAT
RYEAR
BELNR
BUZEI
RACCT
PRCTR
PPRCTR
HSL
DRCRK
FROM FAGLFLEXA INTO CORRESPONDING FIELDS OF TABLE IT_FAGLFLEXA FOR ALL ENTRIES IN IT_BSEG WHERE BELNR = IT_BSEG-BELNR
AND RBUKRS = IT_BSEG-BUKRS
AND RYEAR = IT_BSEG-GJAHR
and buzei = it_bseg-buzei.
ENDFORM. " GET_DATA
FORM PROCESS_DATA.
LOOP AT IT_BSEG INTO WA_BSEG .
WA_FINAL-BUKRS = WA_BSEG-BUKRS.
WA_FINAL-BELNR = WA_BSEG-BELNR.
WA_FINAL-BUZEI = WA_BSEG-BUZEI.
WA_FINAL-GJAHR = WA_BSEG-GJAHR.
WA_FINAL-PRCTR = WA_BSEG-PRCTR.
WA_FINAL-KOART = WA_BSEG-KOART.
WA_FINAL-LIFNR = WA_BSEG-LIFNR.
WA_FINAL-TXGRP = WA_BSEG-TXGRP.
WA_FINAL-HKONT1 = WA_BSEG-HKONT.
WA_FINAL-DMBTR = WA_BSEG-DMBTR.
READ TABLE IT_BKPF INTO WA_BKPF WITH KEY BUKRS = WA_BSEG-BUKRS
BELNR = WA_BSEG-BELNR
GJAHR = WA_BSEG-GJAHR.
* WA_FINAL-BLART = WA_BKPF-BLART.
WA_FINAL-BLDAT = WA_BKPF-BLDAT.
WA_FINAL-BUDAT = WA_BKPF-BUDAT.
WA_FINAL-XBLNR = WA_BKPF-XBLNR.
READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_BSEG-LIFNR.
WA_FINAL-NAME1 = WA_LFA1-NAME1.
READ TABLE IT_FAGLFLEXA INTO WA_FAGLFLEXA WITH KEY BELNR = WA_BSEG-BELNR
RBUKRS = WA_BSEG-BUKRS
RYEAR = WA_BSEG-GJAHR
buzei = wa_bseg-buzei.
WA_FINAL-PRCTR1 = WA_FAGLFLEXA-PRCTR.
READ TABLE IT_SKAT INTO WA_SKAT WITH KEY SAKNR = WA_BSEG-HKONT.
WA_FINAL-TXT50 = WA_SKAT-TXT50.
* READ TABLE IT_BSET INTO WA_BSET WITH KEY BUKRS = WA_BSEG-BUKRS BELNR = WA_BSEG-BELNR GJAHR = WA_BSEG-GJAHR TXGRP = WA_BSEG-TXGRP .
* WA_FINAL-BUZEI1 = WA_BSET-BUZEI.
* WA_FINAL-MWSKZ = WA_BSET-MWSKZ.
* WA_FINAL-HKONT = WA_BSET-HKONT.
* WA_FINAL-SHKZG = WA_BSET-SHKZG.
* WA_FINAL-FWBAS = WA_BSET-FWBAS.
* WA_FINAL-KSCHL = WA_BSET-KSCHL.
* WA_FINAL-HWSTE = WA_BSET-HWSTE.
LOOP AT IT_BSET INTO WA_BSET WHERE BUKRS = WA_BSEG-BUKRS AND
BELNR = WA_BSEG-BELNR AND
GJAHR = WA_BSEG-GJAHR AND
* TXGRP = WA_BSEG-TXGRP AND
BUZEI = WA_BSEG-BUZEI.
WA_FINAL-BUZEI1 = WA_BSET-BUZEI.
WA_FINAL-MWSKZ = WA_BSET-MWSKZ.
WA_FINAL-HKONT = WA_BSET-HKONT.
WA_FINAL-SHKZG = WA_BSET-SHKZG.
WA_FINAL-FWBAS = WA_BSET-FWBAS.
WA_FINAL-KSCHL = WA_BSET-KSCHL.
WA_FINAL-HWSTE = WA_BSET-HWSTE.
APPEND WA_FINAL TO IT_FINAL .
ENDLOOP.
* APPEND WA_FINAL TO IT_FINAL.
CLEAR: WA_FINAL,WA_BKPF,WA_BSEG,WA_LFA1,WA_BSET.
ENDLOOP.
*LOOP AT IT_BSET INTO WA_BSET WHERE BUKRS = WA_BSEG-BUKRS AND
* BELNR = WA_BSEG-BELNR AND
* GJAHR = WA_BSEG-GJAHR AND
* TXGRP = WA_BSEG-TXGRP .
* WA_FINAL-BUZEI1 = WA_BSET-BUZEI.
* WA_FINAL-MWSKZ = WA_BSET-MWSKZ.
* WA_FINAL-HKONT = WA_BSET-HKONT.
* WA_FINAL-SHKZG = WA_BSET-SHKZG.
* WA_FINAL-FWBAS = WA_BSET-FWBAS.
* WA_FINAL-KSCHL = WA_BSET-KSCHL.
* WA_FINAL-HWSTE = WA_BSET-HWSTE.
* MODIFY IT_bset FROM wa_bset .
* CLEAR WA_BSET.
*
* ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
IF WA_FINAL-KSCHL = 'JICG'.
wa_final-jicg = wa_final-hwste.
endif.
IF WA_FINAL-KSCHL = 'JISG'.
WA_FINAL-JISG = WA_FINAL-HWSTE.
ENDIF.
IF WA_FINAL-KSCHL = 'JIIG'.
WA_FINAL-JIIG = WA_FINAL-HWSTE.
ENDIF.
WA_FINAL-TOTAL = WA_FINAL-FWBAS + WA_FINAL-JICG + WA_FINAL-JISG + WA_FINAL-JIIG.
SHIFT WA_FINAL-LIFNR LEFT DELETING LEADING '0'.
SHIFT WA_FINAL-HKONT1 LEFT DELETING LEADING '0'.
SHIFT WA_FINAL-PRCTR LEFT DELETING LEADING '0'.
MODIFY IT_FINAL FROM WA_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
*DELETE IT_FINAL WHERE KOART = 'K'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISP_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = IT_FCAT "PASS FIELD CATALOG TO ALV
TABLES
T_OUTTAB = IT_FINAL.
ENDFORM. " DISP_ALV
*&---------------------------------------------------------------------*
*& Form CREATE_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
* WA_FCAT-COL_POS = '1' .
WA_FCAT-FIELDNAME = 'BUKRS' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Company Code' .
* WA_FCAT-KEY = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '2' .
WA_FCAT-FIELDNAME = 'BELNR' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Document No' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '3' .
WA_FCAT-FIELDNAME = 'BLDAT' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Document Date' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'BUDAT' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Posting Date' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
** WA_FCAT-COL_POS = '4' .
* WA_FCAT-FIELDNAME = 'KOART' .
* WA_FCAT-TABNAME = 'IT_FINAL' .
* WA_FCAT-SELTEXT_M = 'Account Type' .
** WA_FCAT-NO_OUT = 'X' .
** WA_FCAT-HOTSPOT = 'X' .
* APPEND WA_FCAT TO IT_FCAT .
* CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '5' .
WA_FCAT-FIELDNAME = 'XBLNR' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Bill No' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '6' .
WA_FCAT-FIELDNAME = 'LIFNR' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Vendor No' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '7' .
WA_FCAT-FIELDNAME = 'NAME1' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Vendor Name' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '8' .
WA_FCAT-FIELDNAME = 'HKONT1' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'G/L Account' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
WA_FCAT-FIELDNAME = 'TXT50' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'G/L Description' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '9' .
WA_FCAT-FIELDNAME = 'PRCTR1' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Profit Center' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'FWBAS' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Base Amount' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* * WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'KSCHL' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Tax Type' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
WA_FCAT-FIELDNAME = 'MWSKZ' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Tax Code' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
** * WA_FCAT-COL_POS = '10' .
* WA_FCAT-FIELDNAME = 'HWSTE' .
* WA_FCAT-TABNAME = 'IT_FINAL' .
* WA_FCAT-SELTEXT_M = 'Tax Amount' .
** WA_FCAT-NO_OUT = 'X' .
** WA_FCAT-HOTSPOT = 'X' .
* APPEND WA_FCAT TO IT_FCAT .
* CLEAR WA_FCAT .
* * WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'JICG' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'JICG' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* * WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'JISG' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'JISG' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* * WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'JIIG' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'JIIG' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
* * WA_FCAT-COL_POS = '10' .
WA_FCAT-FIELDNAME = 'TOTAL' .
WA_FCAT-TABNAME = 'IT_FINAL' .
WA_FCAT-SELTEXT_M = 'Total Amount' .
* WA_FCAT-NO_OUT = 'X' .
* WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .
ENDFORM. " CREATE_FCAT