Zfi Adr Report
Zfi Adr Report
REPORT zfi_adr_report.
TABLES : bseg, bkpf.
START-OF-SELECTION.
PERFORM get_dat.
PERFORM process_data.
PERFORM get_fieldcat.
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form GET_DAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_dat .
CLEAR : gt_bkpf, gt_bseg.
SELECT bukrs
belnr
gjahr
buzei
shkzg
mwskz
dmbtr
hwbas
qsshb
kostl
hkont
lifnr
qbshb
werks FROM bseg INTO TABLE gt_bseg
WHERE bukrs IN s_bukrs AND hkont IN s_hkont AND kostl IN s_kostl.
SELECT bukrs
belnr
gjahr
buzei
shkzg
mwskz
dmbtr
hwbas
qsshb
kostl
hkont
lifnr
qbshb
werks FROM bseg INTO TABLE gt_bseg1
FOR ALL ENTRIES IN gt_bkpf WHERE bukrs = gt_bkpf-bukrs AND belnr = gt_bkpf-
belnr AND gjahr = gt_bkpf-gjahr.
SELECT werks
name1 FROM t001w INTO TABLE gt_t001w
FOR ALL ENTRIES IN gt_bseg WHERE werks = gt_bseg-werks.
SELECT ktopl
saknr
txt50 FROM skat INTO TABLE gt_skat
FOR ALL ENTRIES IN gt_bseg WHERE saknr = gt_bseg-hkont
AND spras = 'EN'
AND ktopl = '1000'.
IF gt_bseg1 IS NOT INITIAL.
SELECT lifnr name1 FROM lfa1 INTO TABLE gt_lfa1
FOR ALL ENTRIES IN gt_bseg1 WHERE lifnr = gt_bseg1-lifnr.
SORT gt_lfa1 BY lifnr.
SELECT bukrs belnr wt_withcd wt_qsshb wt_qbshh qsatz FROM with_item INTO
TABLE gt_with
FOR ALL ENTRIES IN gt_bseg1 WHERE bukrs = gt_bseg1-bukrs AND belnr =
gt_bseg1-belnr AND wt_withcd <> ' '.
SORT gt_with BY belnr.
SELECT wt_withcd text40 FROM t059zt INTO TABLE gt_t059zt FOR ALL ENTRIES IN
gt_with WHERE wt_withcd = gt_with-wt_withcd AND spras = 'EN'.
SORT gt_t059zt BY wt_withcd.
ENDIF.
SELECT kalsm
mwskz
text1 FROM t007s INTO TABLE gt_t007s
FOR ALL ENTRIES IN gt_bseg1 WHERE mwskz = gt_bseg1-mwskz AND spras =
'EN'.
ENDIF.
ENDIF.
ENDFORM. " GET_DAT
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
gs_final-werks = gs_bseg-werks.
gs_final-name1 = gs_t001w-name1.
gs_final-blart = gs_bkpf-blart.
gs_final-budat = gs_bkpf-budat.
gs_final-belnr = gs_bseg-belnr.
gs_final-awkey = gs_bkpf-awkey.
gs_final-bldat = gs_bkpf-bldat.
gs_final-hkont = gs_bseg-hkont.
gs_final-txt50 = gs_skat-txt50.
gs_final-kostl = gs_bseg-kostl.
* gs_final-qsskz = gs_t059q-qsskz.
* gs_final-qsbez = gs_t059q-qsbez.
* gs_final-qscod = gs_t059q-qscod.
* gs_final-qsshb = gs_bseg-qsshb.
* gs_final-qproz = gs_t059q-qproz.
* gs_final-qbshb = gs_bseg-qbshb.
gs_final-mwskz = gs_bseg-mwskz.
gs_final-text1 = gs_t007s-text1.
* gs_final-hwbas = gs_bseg-hwbas.
IF gs_bseg-shkzg = 'S'.
gs_final-dmb_d = gs_final-dmb_d + gs_bseg-dmbtr.
ELSEIF gs_bseg-shkzg = 'H'.
gs_final-dmb_c = gs_final-dmb_c + gs_bseg-dmbtr.
ENDIF.
CLEAR : bseg.
ENDLOOP.
LOOP AT gt_bseg2 INTO gs_bseg1 WHERE belnr = gs_final-belnr." AND mwskz <> ' '.
CLEAR: gs_with, gs_t059z, gs_t059zt.
READ TABLE gt_with INTO gs_with WITH KEY belnr = gs_bseg1-belnr BINARY
SEARCH.
IF gs_with IS NOT INITIAL.
READ TABLE gt_t059z INTO gs_t059z WITH KEY wt_withcd = gs_with-wt_withcd
BINARY SEARCH.
READ TABLE gt_t059zt INTO gs_t059zt WITH KEY wt_withcd = gs_with-wt_withcd
BINARY SEARCH.
gs_final-qsskz = gs_t059z-wt_withcd.
gs_final-qsbez = gs_t059zt-text40.
gs_final-qscod = gs_t059z-qscod.
gs_final-qsshb = gs_with-wt_qsshb.
gs_final-qproz = gs_with-qsatz.
gs_final-qbshb = gs_with-wt_qbshh.
ENDIF.
IF gs_bseg1 IS INITIAL.
ELSE.
CLEAR: gs_bseg1.
EXIT.
ENDIF.
CLEAR: gs_bseg1.
ENDLOOP.
MODIFY gt_final FROM gs_final. "INDEX lv_index1 TRANSPORTING lifnr name2 qsskz
qsbez qscod qsshb qproz qbshb hwbas.
CLEAR : gs_final, lv_index1, lv_index, gs_with, gs_t059z, gs_bseg1, gs_bseg2,
gt_bseg2.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*&---------------------------------------------------------------------*
*& Form GET_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_fieldcat .
gs_fcat-fieldname = 'WERKS'.
gs_fcat-seltext_l = 'Plant'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'NAME1'.
gs_fcat-seltext_l = 'Plant Name'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'BLART'.
gs_fcat-seltext_l = 'Voucher Type'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'BUDAT'.
gs_fcat-seltext_l = 'Posting Date'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'BELNR'.
gs_fcat-seltext_l = 'FI No.'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'AWKEY'.
gs_fcat-seltext_l = 'Doc. No'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'BLDAT'.
gs_fcat-seltext_l = 'Doc Date'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'HKONT'.
gs_fcat-seltext_l = 'SAP GL Code No.'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'TXT50'.
gs_fcat-seltext_l = 'GL Account Name'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
if p_kostl = 'X'.
gs_fcat-fieldname = 'KOSTL'.
gs_fcat-seltext_l = 'Cost Centre'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
endif.
gs_fcat-fieldname = 'LIFNR'.
gs_fcat-seltext_l = 'Entity Code'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'NAME2'.
gs_fcat-seltext_l = 'Entity Name'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'DMB_D'.
gs_fcat-seltext_l = 'Debit'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'DMB_C'.
gs_fcat-seltext_l = 'Credit'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'DMB_N'.
gs_fcat-seltext_l = 'Net'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QSSKZ'.
gs_fcat-seltext_l = 'TDS Code'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QSBEZ'.
gs_fcat-seltext_l = 'TDS Description'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QSCOD'.
gs_fcat-seltext_l = 'Section'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QSSHB'.
gs_fcat-seltext_l = 'TDS base value'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QPROZ'.
gs_fcat-seltext_l = 'TDS Percent'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'QBSHB'.
gs_fcat-seltext_l = 'TDS Amount'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'MWSKZ'.
gs_fcat-seltext_l = 'Tax code'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'TEXT1'.
gs_fcat-seltext_l = 'Tax code description'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = 'HWBAS'.
gs_fcat-seltext_l = 'Tax base vale'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
ENDFORM. " GET_FIELDCAT
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .