sapnotlarim.files.wordpress.com€¦ · web viewselection-screen : begin of block blck2 with frame...
TRANSCRIPT
*&---------------------------------------------------------------------**& Report ZFI_BOE_DETAIL_REPORT*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZFI_BOE_DETAIL_REPORT.
TABLES : BSED, BKPF, KNA1, BNKA, BSIS, BSAS, T001, LFA1, SKAT, BSAD, BSID, BSEG.
TYPE-POOLS : SLIS.
DATA : GT_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, GT_HEADER TYPE SLIS_T_LISTHEADER WITH HEADER LINE, GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV, GD_LAYOUT TYPE SLIS_LAYOUT_ALV, GD_REPID LIKE SY-REPID, GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
DATA : GT_T045W LIKE T045W OCCURS 0 WITH HEADER LINE.
DATA : GS_T045P TYPE T045P.
DATA : BEGIN OF GT_IBRAZ OCCURS 0, UMSKZ LIKE BSEG-UMSKZ, HKONT LIKE BSEG-HKONT, END OF GT_IBRAZ.DATA : GT_DATA LIKE ZFI_BOERP_STR OCCURS 0 WITH HEADER LINE.DATA : GV_ZFBDT LIKE BSID-ZFBDT.DATA : GV_KUNNR LIKE BSID-KUNNR.DATA : LS_BKPF TYPE BKPF.DATA : GT_BSID LIKE BSID OCCURS 0 WITH HEADER LINE.DATA : GT_BSED LIKE BSED OCCURS 0 WITH HEADER LINE.DATA : GT_BSEG LIKE BSEG OCCURS 0 WITH HEADER LINE.DATA : GT_BSIS LIKE BSIS OCCURS 0 WITH HEADER LINE.DATA : GV_BKTXT TYPE BKTXT.RANGES : R_UMSKZ FOR BSID-UMSKZ.RANGES : R_HKONT FOR BSIS-HKONT.
SELECTION-SCREEN : BEGIN OF BLOCK BLCK1 WITH FRAME TITLE TEXT-001.PARAMETERS : PBUKRS LIKE BKPF-BUKRS OBLIGATORY.SELECT-OPTIONS : SBUDAT FOR BKPF-BUDAT OBLIGATORY NO-EXTENSION.SELECT-OPTIONS : SBOENO FOR BSED-BOENO. "OBLIGATORY.SELECT-OPTIONS : SZFBDT FOR BSEG-ZFBDT. "OBLIGATORY.SELECT-OPTIONS : SGSBER FOR BSEG-GSBER. "OBLIGATORY.SELECT-OPTIONS : SXBLNR FOR BKPF-XBLNR. "OBLIGATORY.SELECT-OPTIONS : SPORTF FOR BSED-PORTF. "OBLIGATORY.SELECT-OPTIONS : SKUNNR FOR BSID-KUNNR. "OBLIGATORY.SELECT-OPTIONS : SHKONT FOR BSIS-HKONT. "OBLIGATORY.SELECTION-SCREEN : END OF BLOCK BLCK1.
SELECTION-SCREEN : BEGIN OF BLOCK BLCK2 WITH FRAME TITLE TEXT-002.PARAMETERS : RB_PORT RADIOBUTTON GROUP RBG1 DEFAULT 'X', RB_BIBR RADIOBUTTON GROUP RBG1, RB_BTAH RADIOBUTTON GROUP RBG1, RB_SIBR RADIOBUTTON GROUP RBG1, RB_STAH RADIOBUTTON GROUP RBG1, RB_BKRS RADIOBUTTON GROUP RBG1, RB_SKRS RADIOBUTTON GROUP RBG1, RB_IADE RADIOBUTTON GROUP RBG1.SELECTION-SCREEN : END OF BLOCK BLCK2.SELECTION-SCREEN : BEGIN OF BLOCK BLCK3 WITH FRAME TITLE TEXT-003.PARAMETERS : CB_CEK AS CHECKBOX DEFAULT 'X', CB_SNT AS CHECKBOX DEFAULT ''.SELECTION-SCREEN : END OF BLOCK BLCK3.SELECTION-SCREEN : BEGIN OF BLOCK BLCK4 WITH FRAME TITLE TEXT-004.PARAMETERS : RB_GNCL RADIOBUTTON GROUP RBG2, RB_ISLM RADIOBUTTON GROUP RBG2 DEFAULT 'X'.SELECTION-SCREEN : END OF BLOCK BLCK4.
START-OF-SELECTION.
PERFORM BUILD_FIELDCATALOG. PERFORM BUILD_HEADER. PERFORM BUILD_LAYOUT. PERFORM BUILD_PRINT_PARAMS.
PERFORM FILL_INIT. PERFORM SELECT_DATA. perform f_get_xref_original. PERFORM DISPLAY_DATA.
END-OF-SELECTION.*&---------------------------------------------------------------------**& Form BUILD_FIELDCATALOG*&---------------------------------------------------------------------*FORM BUILD_FIELDCATALOG .
GD_REPID = SY-REPID.
CLEAR: GT_FIELDCATALOG[].
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = GD_REPID I_INTERNAL_TABNAME = 'GT_DATA' I_INCLNAME = GD_REPID I_BYPASSING_BUFFER = 'X' CHANGING CT_FIELDCAT = GT_FIELDCATALOG[].
LOOP AT GT_FIELDCATALOG. IF GT_FIELDCATALOG-FIELDNAME = 'NAMED'.
GT_FIELDCATALOG-SELTEXT_L = 'Müşteri adı'.* gt_fieldcatalog-col_pos = 11. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'NAMEK'. GT_FIELDCATALOG-SELTEXT_L = 'Satıcı adı'.* gt_fieldcatalog-col_pos = 11. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'WRBTR'. GT_FIELDCATALOG-DO_SUM = 'X'. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'TXT50'. IF RB_BTAH EQ 'X'. GT_FIELDCATALOG-SELTEXT_L = 'Banka hesabı'. ELSE. GT_FIELDCATALOG-SELTEXT_L = 'Çıkış bankası adı'. ENDIF. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'PORTF'. GT_FIELDCATALOG-SELTEXT_L = 'Portföy'. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'BOENO'. GT_FIELDCATALOG-SELTEXT_L = 'Çek no.'. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'UMSKZ'. GT_FIELDCATALOG-SELTEXT_L = 'ÖDK'. ENDIF. IF GT_FIELDCATALOG-FIELDNAME = 'ZFBDT'. GT_FIELDCATALOG-SELTEXT_L = 'Vade'. ENDIF. IF RB_PORT EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50' OR GT_FIELDCATALOG-FIELDNAME EQ 'LIFNR' OR GT_FIELDCATALOG-FIELDNAME EQ 'NAMEK'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_SIBR EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_BIBR EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'LIFNR' OR GT_FIELDCATALOG-FIELDNAME EQ 'NAMEK'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_BTAH EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'LIFNR' OR GT_FIELDCATALOG-FIELDNAME EQ 'NAMEK'. GT_FIELDCATALOG-NO_OUT = 'X'.
ENDIF. ENDIF. IF RB_STAH EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_BKRS EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'LIFNR' OR GT_FIELDCATALOG-FIELDNAME EQ 'NAMEK' OR GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_SKRS EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. IF RB_IADE EQ 'X'. IF GT_FIELDCATALOG-FIELDNAME EQ 'LIFNR' OR GT_FIELDCATALOG-FIELDNAME EQ 'NAMEK' OR GT_FIELDCATALOG-FIELDNAME EQ 'HKONT' OR GT_FIELDCATALOG-FIELDNAME EQ 'TXT50'. GT_FIELDCATALOG-NO_OUT = 'X'. ENDIF. ENDIF. GT_FIELDCATALOG-DDICTXT = 'L'. MODIFY GT_FIELDCATALOG. ENDLOOP.
ENDFORM. " BUILD_FIELDCATALOG*&---------------------------------------------------------------------**& Form BUILD_LAYOUT*&---------------------------------------------------------------------*FORM BUILD_LAYOUT . GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. GD_LAYOUT-INFO_FIELDNAME = 'CLR'. GD_LAYOUT-TOTALS_TEXT = 'Toplam'(201).ENDFORM. " BUILD_LAYOUT*&---------------------------------------------------------------------**& Form BUILD_PRINT_PARAMS*&---------------------------------------------------------------------*FORM BUILD_PRINT_PARAMS . GD_PRNTPARAMS-RESERVE_LINES = '3'. GD_PRNTPARAMS-NO_COVERPAGE = 'X'.ENDFORM. " BUILD_PRINT_PARAMS*&---------------------------------------------------------------------**& Form SELECT_DATA*&---------------------------------------------------------------------*
FORM SELECT_DATA . SELECT SINGLE * FROM T001 WHERE BUKRS = PBUKRS. IF RB_PORT EQ 'X'. REFRESH : GT_BSID. CLEAR : GT_BSID. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSID AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '01%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSAD AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '01%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE.* LOOP AT gt_bsid.* IF gt_bsid-xblnr+0(2) NE '01'.* DELETE gt_bsid.* ENDIF.* ENDLOOP. LOOP AT GT_BSID. CLEAR : GV_BKTXT. CONCATENATE GT_BSID-BELNR GT_BSID-BUZEI GT_BSID-GJAHR INTO GV_BKTXT.
CLEAR : BKPF. SELECT SINGLE * FROM BKPF WHERE BUKRS = PBUKRS AND XBLNR LIKE '90%' AND BKTXT = GV_BKTXT AND BUDAT IN SBUDAT. IF SY-SUBRC EQ 0. DELETE GT_BSID. ENDIF. ENDLOOP. IF GT_BSID-SHKZG EQ 'H'. GT_BSID-WRBTR = GT_BSID-WRBTR * -1. ENDIF. LOOP AT GT_BSID. CLEAR : GT_DATA. MOVE-CORRESPONDING GT_BSID TO GT_DATA. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR AND GJAHR = GT_BSID-GJAHR AND BUZEI = GT_BSID-BUZEI. IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. GT_DATA-PORTF = BSED-PORTF. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. APPEND GT_DATA. ENDIF. ENDLOOP. IF RB_ISLM EQ 'X'.
LOOP AT GT_DATA. CLEAR : GV_BKTXT. CONCATENATE GT_DATA-BELNR GT_DATA-BUZEI GT_DATA-GJAHR INTO GV_BKTXT. CLEAR : BKPF. SELECT SINGLE * FROM BKPF WHERE BUKRS = PBUKRS AND ( XBLNR LIKE '02%' OR XBLNR LIKE '03%' ) AND BKTXT = GV_BKTXT AND BUDAT IN SBUDAT AND STBLG = SPACE. IF SY-SUBRC EQ 0. DELETE GT_DATA. ENDIF. ENDLOOP. ENDIF. ELSEIF RB_BIBR EQ 'X'. REFRESH : GT_BSIS. CLEAR : GT_BSIS. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSIS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT IN SHKONT AND A~HKONT IN R_HKONT AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '02%' AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSAS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT IN SHKONT AND A~HKONT IN R_HKONT AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '02%' AND A~GSBER IN SGSBER
AND B~STBLG EQ SPACE. LOOP AT GT_BSIS. IF GT_BSIS-SHKZG EQ 'H'. GT_BSIS-WRBTR = GT_BSIS-WRBTR * -1. ENDIF. MOVE-CORRESPONDING GT_BSIS TO GT_DATA. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. CLEAR : BSID. SELECT SINGLE * FROM BSID WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSID-ZFBDT. GV_KUNNR = BSID-KUNNR. ELSE. SELECT SINGLE * FROM BSAD WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSAD-ZFBDT. GV_KUNNR = BSAD-KUNNR. ENDIF. ENDIF. IF GV_ZFBDT IN SZFBDT AND GV_KUNNR IN SKUNNR. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH.
ENDIF. GT_DATA-ACCOU = BSED-ACCOU.
GT_DATA-ZFBDT = GV_ZFBDT. GT_DATA-KUNNR = GV_KUNNR. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. SELECT SINGLE * FROM SKAT WHERE SPRAS EQ SY-LANGU AND KTOPL EQ T001-KTOPL AND SAKNR EQ GT_DATA-HKONT. IF SY-SUBRC EQ 0. GT_DATA-TXT50 = SKAT-TXT50. ENDIF. IF GT_BSIS-HKONT+0(3) = '101'. GT_DATA-UMSKZ = 'C'. ELSEIF GT_BSIS-HKONT+0(3) = '121'. GT_DATA-UMSKZ = 'S'. ENDIF. IF GT_DATA-UMSKZ EQ 'C' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-UMSKZ EQ 'S' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDLOOP. IF RB_ISLM EQ 'X'. LOOP AT GT_DATA. CLEAR : GV_BKTXT.* CONCATENATE gt_data-belnr gt_data-buzei gt_data-gjahr* INTO gv_bktxt. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = PBUKRS AND BELNR = GT_DATA-BELNR AND GJAHR = GT_DATA-GJAHR. CLEAR : BKPF. SELECT SINGLE * FROM BKPF WHERE BUKRS = PBUKRS AND ( XBLNR LIKE '04%' OR XBLNR LIKE '06%' ) AND BKTXT = GV_BKTXT
AND BUDAT IN SBUDAT AND STBLG = SPACE. IF SY-SUBRC EQ 0. DELETE GT_DATA. ENDIF. ENDLOOP. ENDIF. ELSEIF RB_BTAH EQ 'X'. REFRESH : GT_BSIS. CLEAR : GT_BSIS. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSIS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT IN SHKONT AND A~HKONT IN R_HKONT AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '04%' AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. LOOP AT GT_BSIS. IF GT_BSIS-SHKZG EQ 'H'. GT_BSIS-WRBTR = GT_BSIS-WRBTR * -1. ENDIF. MOVE-CORRESPONDING GT_BSIS TO GT_DATA. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. CLEAR : BSID. SELECT SINGLE * FROM BSID WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSID-ZFBDT. GV_KUNNR = BSID-KUNNR. ELSE. CLEAR : BSAD.
SELECT SINGLE * FROM BSAD WHERE BUKRS = PBUKRS AND BELNR = GT_BSIS-ZUONR+0(10) AND GJAHR = GT_BSIS-ZUONR+13(4) AND BUZEI = GT_BSIS-ZUONR+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSAD-ZFBDT. GV_KUNNR = BSAD-KUNNR. ENDIF. ENDIF. IF GV_ZFBDT IN SZFBDT AND GV_KUNNR IN SKUNNR. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. GT_DATA-ZFBDT = GV_ZFBDT. GT_DATA-KUNNR = GV_KUNNR. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. CLEAR : SKAT. SELECT SINGLE * FROM SKAT WHERE SPRAS EQ SY-LANGU AND KTOPL EQ T001-KTOPL AND SAKNR EQ GT_DATA-HKONT. IF SY-SUBRC EQ 0. GT_DATA-TXT50 = SKAT-TXT50. ENDIF. CLEAR : BSEG. SELECT SINGLE * FROM BSEG WHERE BUKRS = GT_BSIS-BUKRS AND BELNR = GT_BSIS-BELNR AND GJAHR = GT_BSIS-GJAHR AND BUZEI = 002.
IF BSEG-HKONT+0(3) = '101'. GT_DATA-UMSKZ = 'C'. ELSEIF BSEG-HKONT+0(3) = '121'. GT_DATA-UMSKZ = 'S'. ENDIF. IF GT_DATA-UMSKZ EQ 'C' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-UMSKZ EQ 'S' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDLOOP. ELSEIF RB_SIBR EQ 'X'. REFRESH : GT_T045W. CLEAR : GT_T045W. SELECT * INTO TABLE GT_T045W FROM T045W WHERE KTOPL = T001-KTOPL AND WVERW = 'F' AND UMSKZ IN R_UMSKZ. REFRESH : GT_IBRAZ. CLEAR : GT_IBRAZ. LOOP AT GT_T045W. GT_IBRAZ-UMSKZ = GT_T045W-UMSKZ. GT_IBRAZ-HKONT = GT_T045W-VKONT. APPEND GT_IBRAZ. ENDLOOP. DELETE ADJACENT DUPLICATES FROM GT_IBRAZ. LOOP AT GT_IBRAZ. REFRESH GT_BSIS. CLEAR GT_BSIS. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSIS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT EQ GT_IBRAZ-HKONT AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '03%' AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSAS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS
AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT EQ GT_IBRAZ-HKONT AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '03%' AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. LOOP AT GT_BSIS. CLEAR : GV_BKTXT. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = GT_BSIS-BUKRS AND BELNR EQ GT_BSIS-BELNR AND GJAHR = GT_BSIS-GJAHR. IF GV_BKTXT IS NOT INITIAL. CLEAR : LS_BKPF. SELECT SINGLE * INTO LS_BKPF FROM BKPF WHERE BUKRS = GT_BSIS-BUKRS AND BELNR NE GT_BSIS-BELNR AND GJAHR = GT_BSIS-GJAHR AND BKTXT = GV_BKTXT. IF LS_BKPF IS NOT INITIAL. MOVE-CORRESPONDING LS_BKPF TO GT_DATA. GT_DATA-BUZEI = 001. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. CLEAR : BSID. SELECT SINGLE * FROM BSID WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSID-ZFBDT. GV_KUNNR = BSID-KUNNR. ELSE. CLEAR : BSAD.
SELECT SINGLE * FROM BSAD WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSAD-ZFBDT. GV_KUNNR = BSAD-KUNNR. ENDIF. ENDIF. IF GV_ZFBDT IN SZFBDT AND GV_KUNNR IN SKUNNR. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. GT_DATA-ZFBDT = GV_ZFBDT. GT_DATA-KUNNR = GV_KUNNR. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. GT_DATA-HKONT = ''. GT_DATA-TXT50 = ''. CLEAR : BSEG. SELECT SINGLE * FROM BSEG WHERE BUKRS = LS_BKPF-BUKRS AND BELNR = LS_BKPF-BELNR AND GJAHR = LS_BKPF-GJAHR AND BUZEI = 001. IF SY-SUBRC EQ 0. GT_DATA-LIFNR = BSEG-LIFNR. GT_DATA-WRBTR = BSEG-WRBTR. CLEAR : LFA1. SELECT SINGLE * FROM LFA1 WHERE LIFNR = GT_DATA-LIFNR.
GT_DATA-NAMEK = LFA1-NAME1. ENDIF. GT_DATA-UMSKZ = GT_IBRAZ-UMSKZ. IF GT_DATA-UMSKZ EQ 'C' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-UMSKZ EQ 'S' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDLOOP. ENDLOOP. IF RB_ISLM EQ 'X'. LOOP AT GT_DATA. CLEAR : GV_BKTXT.* CONCATENATE gt_data-belnr gt_data-buzei gt_data-gjahr* INTO gv_bktxt. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = PBUKRS AND BELNR = GT_DATA-BELNR AND GJAHR = GT_DATA-GJAHR. CLEAR : BKPF. SELECT SINGLE * FROM BKPF WHERE BUKRS = PBUKRS AND ( XBLNR LIKE '05%' OR XBLNR LIKE '07%' ) AND BKTXT = GV_BKTXT AND BUDAT IN SBUDAT AND STBLG = SPACE. IF SY-SUBRC EQ 0. DELETE GT_DATA. ENDIF. ENDLOOP. ENDIF. ELSEIF RB_STAH EQ 'X'. REFRESH : GT_T045W. CLEAR : GT_T045W. SELECT * INTO TABLE GT_T045W FROM T045W WHERE KTOPL = T001-KTOPL AND WVERW = 'F' AND UMSKZ IN R_UMSKZ. REFRESH : GT_IBRAZ. CLEAR : GT_IBRAZ. LOOP AT GT_T045W. GT_IBRAZ-UMSKZ = GT_T045W-UMSKZ. GT_IBRAZ-HKONT = GT_T045W-VKONT.
APPEND GT_IBRAZ. ENDLOOP. DELETE ADJACENT DUPLICATES FROM GT_IBRAZ. LOOP AT GT_IBRAZ. REFRESH GT_BSIS. CLEAR GT_BSIS. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSIS FROM BSAS AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~HKONT EQ GT_IBRAZ-HKONT AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '05%' AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. LOOP AT GT_BSIS. CLEAR : GV_BKTXT. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = GT_BSIS-BUKRS AND BELNR = GT_BSIS-BELNR AND GJAHR = GT_BSIS-GJAHR. IF GV_BKTXT IS NOT INITIAL. CLEAR : LS_BKPF. SELECT SINGLE * INTO LS_BKPF FROM BKPF WHERE BUKRS = GT_BSIS-BUKRS AND XBLNR LIKE '03%' AND TCODE EQ 'FB05' AND BKTXT = GV_BKTXT. IF LS_BKPF IS NOT INITIAL. MOVE-CORRESPONDING LS_BKPF TO GT_DATA. GT_DATA-BELNR = GT_BSIS-BELNR. GT_DATA-GJAHR = GT_BSIS-GJAHR. GT_DATA-BUZEI = GT_BSIS-BUZEI. GT_DATA-BUDAT = GT_BSIS-BUDAT. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO
AND BSED-PORTF IN SPORTF. CLEAR : BSID. SELECT SINGLE * FROM BSID WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSID-ZFBDT. GV_KUNNR = BSID-KUNNR. ELSE. CLEAR : BSAD. SELECT SINGLE * FROM BSAD WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0. GV_ZFBDT = BSAD-ZFBDT. GV_KUNNR = BSAD-KUNNR. ENDIF. ENDIF. IF GV_ZFBDT IN SZFBDT AND GV_KUNNR IN SKUNNR. GT_DATA-PORTF = BSED-PORTF. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. GT_DATA-ZFBDT = GV_ZFBDT. GT_DATA-KUNNR = GV_KUNNR. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. GT_DATA-HKONT = ''. GT_DATA-TXT50 = ''. CLEAR : BSEG.
SELECT SINGLE * FROM BSEG WHERE BUKRS = LS_BKPF-BUKRS AND BELNR = LS_BKPF-BELNR AND GJAHR = LS_BKPF-GJAHR AND BUZEI = 001. IF SY-SUBRC EQ 0. GT_DATA-LIFNR = BSEG-LIFNR. GT_DATA-WRBTR = BSEG-WRBTR. CLEAR : LFA1. SELECT SINGLE * FROM LFA1 WHERE LIFNR = GT_DATA-LIFNR. GT_DATA-NAMEK = LFA1-NAME1. ENDIF. GT_DATA-UMSKZ = GT_IBRAZ-UMSKZ. IF GT_DATA-UMSKZ EQ 'C' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-UMSKZ EQ 'S' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDLOOP. ENDLOOP. ELSEIF RB_BKRS EQ 'X'. REFRESH : GT_BSID. CLEAR : GT_BSID. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSID AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '06%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSAD AS A
INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '06%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE.* LOOP AT gt_bsid.* CLEAR : gv_bktxt.* CONCATENATE gt_bsid-belnr gt_bsid-buzei gt_bsid-gjahr* INTO gv_bktxt.* CLEAR : bkpf.* SELECT SINGLE ** FROM bkpf* WHERE bukrs = pbukrs* AND xblnr LIKE '90%'* AND bktxt = gv_bktxt* AND budat IN sbudat.* IF sy-subrc EQ 0.* DELETE gt_bsid.* ENDIF.* ENDLOOP. IF GT_BSID-SHKZG EQ 'H'. GT_BSID-WRBTR = GT_BSID-WRBTR * -1. ENDIF. LOOP AT GT_BSID. CLEAR : GT_DATA. MOVE-CORRESPONDING GT_BSID TO GT_DATA. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR AND GJAHR = GT_BSID-GJAHR AND BUZEI = GT_BSID-BUZEI. IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA.
SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. IF GT_DATA-HKONT+0(3) EQ '101' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-HKONT+0(3) EQ '121' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDLOOP. ELSEIF RB_SKRS EQ 'X'. REFRESH : GT_BSID. CLEAR : GT_BSID. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSID AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '07%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSAD AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR
WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR AND A~UMSKS EQ 'W' AND A~UMSKZ IN R_UMSKZ AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '07%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE.* LOOP AT gt_bsid.* CLEAR : gv_bktxt.* CONCATENATE gt_bsid-belnr gt_bsid-buzei gt_bsid-gjahr* INTO gv_bktxt.* CLEAR : bkpf.* SELECT SINGLE ** FROM bkpf* WHERE bukrs = pbukrs* AND xblnr LIKE '90%'* AND bktxt = gv_bktxt* AND budat IN sbudat.* IF sy-subrc EQ 0.* DELETE gt_bsid.* ENDIF.* ENDLOOP. IF GT_BSID-SHKZG EQ 'H'. GT_BSID-WRBTR = GT_BSID-WRBTR * -1. ENDIF. LOOP AT GT_BSID. CLEAR : GT_DATA. MOVE-CORRESPONDING GT_BSID TO GT_DATA. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR AND GJAHR = GT_BSID-GJAHR AND BUZEI = GT_BSID-BUZEI. IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK.
IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. CLEAR : GV_BKTXT. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR AND GJAHR = GT_BSID-GJAHR. IF GV_BKTXT IS NOT INITIAL. CLEAR : LS_BKPF. SELECT SINGLE * INTO LS_BKPF FROM BKPF WHERE BUKRS = GT_BSID-BUKRS AND XBLNR LIKE '03%' AND TCODE EQ 'FB05' AND BKTXT = GV_BKTXT. IF LS_BKPF IS NOT INITIAL. CLEAR : BSEG. SELECT SINGLE * FROM BSEG WHERE BUKRS = LS_BKPF-BUKRS AND BELNR = LS_BKPF-BELNR AND GJAHR = LS_BKPF-GJAHR AND BUZEI = 001. IF SY-SUBRC EQ 0. GT_DATA-LIFNR = BSEG-LIFNR. CLEAR : LFA1. SELECT SINGLE * FROM LFA1 WHERE LIFNR = GT_DATA-LIFNR. GT_DATA-NAMEK = LFA1-NAME1. IF GT_DATA-HKONT+0(3) EQ '101' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF GT_DATA-HKONT+0(3) EQ '121' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDIF.
ENDIF. ENDLOOP. ELSEIF RB_IADE EQ 'X'. REFRESH : GT_BSID. CLEAR : GT_BSID. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSID AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR* AND A~UMSKS EQ SPACE* AND A~UMSKZ EQ SPACE AND A~AUGDT EQ '00000000' AND A~AUGBL EQ SPACE AND A~BUDAT IN SBUDAT AND A~SHKZG EQ 'S' AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '08%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_BSID FROM BSAD AS A INNER JOIN BKPF AS B ON A~BUKRS = B~BUKRS AND A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR WHERE A~BUKRS EQ PBUKRS AND A~KUNNR IN SKUNNR* AND A~UMSKS EQ SPACE* AND A~UMSKZ EQ SPACE AND A~AUGDT NE '00000000' AND A~AUGBL NE SPACE AND A~BUDAT IN SBUDAT AND A~SHKZG EQ 'S' AND A~XBLNR IN SXBLNR AND A~XBLNR LIKE '08%' AND A~ZFBDT IN SZFBDT AND A~GSBER IN SGSBER AND B~STBLG EQ SPACE. LOOP AT GT_BSID. CLEAR : GT_DATA. CLEAR : GV_BKTXT. MOVE-CORRESPONDING GT_BSID TO GT_DATA. SELECT SINGLE BKTXT INTO GV_BKTXT FROM BKPF WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR
AND GJAHR = GT_BSID-GJAHR. IF GV_BKTXT IS NOT INITIAL. CLEAR : BSED. SELECT SINGLE * FROM BSED WHERE BUKRS = PBUKRS AND BELNR = GV_BKTXT+0(10) AND GJAHR = GV_BKTXT+13(4) AND BUZEI = GV_BKTXT+10(3). IF SY-SUBRC EQ 0 AND BSED-BOENO IN SBOENO AND BSED-PORTF IN SPORTF. GT_DATA-PORTF = BSED-PORTF. GT_DATA-BOENO = BSED-BOENO. GT_DATA-WSTAT = BSED-WSTAT. GT_DATA-WBZOG = BSED-WBZOG. GT_DATA-BANK = BSED-BANK. CLEAR : BNKA. SELECT SINGLE * FROM BNKA WHERE BANKS EQ 'TR' AND BANKL EQ GT_DATA-BANK. IF SY-SUBRC EQ 0. GT_DATA-BANKA = BNKA-BANKA. GT_DATA-BRNCH = BNKA-BRNCH. ENDIF. GT_DATA-ACCOU = BSED-ACCOU. CLEAR : KNA1. SELECT SINGLE * FROM KNA1 WHERE KUNNR = GT_DATA-KUNNR. IF SY-SUBRC EQ 0. GT_DATA-NAMED = KNA1-NAME1. ENDIF. CLEAR : BSEG. SELECT SINGLE * FROM BSEG WHERE BUKRS = GT_BSID-BUKRS AND BELNR = GT_BSID-BELNR AND GJAHR = GT_BSID-GJAHR AND BUZEI = 002. IF SY-SUBRC EQ 0. IF BSEG-HKONT+0(3) EQ '101' AND CB_CEK EQ 'X'. APPEND GT_DATA. ELSEIF BSEG-HKONT+0(3) EQ '121' AND CB_SNT EQ 'X'. APPEND GT_DATA. ENDIF. ENDIF. ENDIF. ENDIF. ENDLOOP.
ENDIF.ENDFORM. " SELECT_DATA*&---------------------------------------------------------------------**& Form DISPLAY_DATA*&---------------------------------------------------------------------*FORM DISPLAY_DATA . GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = GD_REPID IS_LAYOUT = GD_LAYOUT I_CALLBACK_USER_COMMAND = 'USER_COMMAND'* i_callback_pf_status_set = 'SET_PF_STATUS' I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE' IT_FIELDCAT = GT_FIELDCATALOG[] I_SAVE = 'A' TABLES T_OUTTAB = GT_DATA EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2.ENDFORM. " DISPLAY_DATA*&---------------------------------------------------------------------**& Form FILL_INIT*&---------------------------------------------------------------------*FORM FILL_INIT .
IF CB_CEK EQ 'X'. IF RB_BKRS NE 'X' AND RB_SKRS NE 'X'. R_UMSKZ-OPTION = 'EQ'. R_UMSKZ-SIGN = 'I'. R_UMSKZ-LOW = 'C'. ELSE. R_UMSKZ-OPTION = 'EQ'. R_UMSKZ-SIGN = 'I'. R_UMSKZ-LOW = 'K'. ENDIF. APPEND R_UMSKZ. CLEAR R_UMSKZ. IF RB_BIBR EQ 'X'. R_HKONT-OPTION = 'BT'. R_HKONT-SIGN = 'I'. R_HKONT-LOW = '1010100000'. R_HKONT-HIGH = '1010899999'. APPEND R_HKONT. CLEAR R_HKONT. ELSEIF RB_BTAH EQ 'X'. R_HKONT-OPTION = 'BT'. R_HKONT-SIGN = 'I'. R_HKONT-LOW = '1020000000'. R_HKONT-HIGH = '1029999999'. APPEND R_HKONT. CLEAR R_HKONT. ENDIF.
ENDIF. IF CB_SNT EQ 'X'. IF RB_BKRS NE 'X' AND RB_SKRS NE 'X'. R_UMSKZ-OPTION = 'EQ'. R_UMSKZ-SIGN = 'I'. R_UMSKZ-LOW = 'S'. ELSE. R_UMSKZ-OPTION = 'EQ'. R_UMSKZ-SIGN = 'I'. R_UMSKZ-LOW = 'Q'. ENDIF. APPEND R_UMSKZ. CLEAR R_UMSKZ. IF RB_BIBR EQ 'X'. R_HKONT-OPTION = 'BT'. R_HKONT-SIGN = 'I'. R_HKONT-LOW = '1210100000'. R_HKONT-HIGH = '1210899999'. APPEND R_HKONT. CLEAR R_HKONT. ELSEIF RB_BTAH EQ 'X'. R_HKONT-OPTION = 'BT'. R_HKONT-SIGN = 'I'. R_HKONT-LOW = '1020000000'. R_HKONT-HIGH = '1029999999'. APPEND R_HKONT. CLEAR R_HKONT. ENDIF. ENDIF.ENDFORM. " FILL_INIT*&---------------------------------------------------------------------**& Form BUILD_HEADER*&---------------------------------------------------------------------*FORM BUILD_HEADER .
DATA : LV_DATE1(10). DATA : LV_DATE2(10).
SELECT SINGLE * FROM T001 WHERE BUKRS = PBUKRS.
GT_HEADER-TYP = 'H'. GT_HEADER-INFO = SY-TITLE. APPEND GT_HEADER.
CLEAR GT_HEADER. GT_HEADER-TYP = 'S'. GT_HEADER-INFO = T001-BUTXT. GT_HEADER-KEY = 'Şirket'. APPEND GT_HEADER.
CLEAR GT_HEADER. GT_HEADER-TYP = 'S'. WRITE SYST-DATUM TO GT_HEADER-INFO.
GT_HEADER-KEY = 'Rapor Tarihi'. APPEND GT_HEADER.
CLEAR GT_HEADER. GT_HEADER-TYP = 'S'. WRITE SBUDAT-LOW TO LV_DATE1. IF SBUDAT-HIGH NE '00000000'. WRITE SBUDAT-HIGH TO LV_DATE2. ENDIF. IF SBUDAT-HIGH NE '00000000'. CONCATENATE LV_DATE1 '-' LV_DATE2 INTO GT_HEADER-INFO. ELSE. GT_HEADER-INFO = LV_DATE1. ENDIF. GT_HEADER-KEY = 'Kayıt Tarihi'. APPEND GT_HEADER.
IF RB_PORT EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Portföy'. APPEND GT_HEADER. ELSEIF RB_BIBR EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Bankaya ibraz'. APPEND GT_HEADER. ELSEIF RB_BTAH EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Bankada tahsil'. APPEND GT_HEADER. ELSEIF RB_BKRS EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Bankada karşılıksız'. APPEND GT_HEADER. ELSEIF RB_SIBR EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Satıcıya ibraz'. APPEND GT_HEADER. ELSEIF RB_STAH EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Satıcıda tahsil'. APPEND GT_HEADER. ELSEIF RB_SKRS EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Satıcıda karşılıksız'. APPEND GT_HEADER.
ELSEIF RB_IADE EQ 'X'. CLEAR GT_HEADER. GT_HEADER-TYP = 'A'. GT_HEADER-INFO = 'Müşteri iade'. APPEND GT_HEADER. ENDIF.
ENDFORM. " BUILD_HEADER*---------------------------------------------------------------------** Form top_of_page **---------------------------------------------------------------------*FORM TOP_OF_PAGE. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = GT_HEADER[].ENDFORM. " top_of_page*&---------------------------------------------------------------------**& Form user_command*&---------------------------------------------------------------------*FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD. CASE R_UCOMM. WHEN '&IC1'. READ TABLE GT_DATA INDEX RS_SELFIELD-TABINDEX. IF RS_SELFIELD-FIELDNAME EQ 'BELNR'. SET PARAMETER ID 'BLN' FIELD GT_DATA-BELNR. SET PARAMETER ID 'BUK' FIELD PBUKRS. SET PARAMETER ID 'GJR' FIELD GT_DATA-GJAHR. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ENDIF. ENDCASE.ENDFORM. "user_command*&---------------------------------------------------------------------**& Form F_GET_XREF_ORIGINAL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM F_GET_XREF_ORIGINAL . data : ls_belnr like bseg-belnr, ls_gjahr like bseg-GJAHR, ls_buzei like bseg-buzei, ls_bktxt like BKPF-bktxt.LOOP AT GT_DATA. CLEAR : ls_belnr, ls_gjahr, ls_buzei, ls_bktxt. "14000001470012010. select single BKTXT into ls_bktxt from bkpf
where BUKRS eq GT_DATA-BUKRS and BELNR eq GT_DATA-BELNR and GJAHR eq GT_DATA-GJAHR. IF sy-SUBRC eq 0. ls_belnr = ls_bktxt(10). ls_buzei = ls_bktxt+10(3). ls_gjahr = ls_bktxt+13(4).
select single xref1 xref2 into (GT_DATA-xref1, GT_DATA-xref2) from bseg where BUKRS eq GT_DATA-BUKRS and BELNR eq ls_belnr and GJAHR eq ls_gjahr and BUZEI eq ls_buzei. modify gt_data. ENDIF.ENDLOOP.ENDFORM. " F_GET_XREF_ORIGINAL