report zcomprasreporte abap

16
REPORT ZCOMPRASREPORTE NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 65 MESSAGE-ID ZR . *********************************************************************** * This program extracts documents from SAP R/3, (A/P module), * to generate three (3) reports for the PUSCHASE REPORT. * This a Peruvian legal requirement and have a specific format for each * report. * * All the documents (invoices, credit memos) that have been * posted between the initial date and the final date, and have at least * one line item with tax code begining with 'C' or 'R', will be selected * and written on the report. * The records are chosen according to the selection-criteria the * user shows on the screen. * * The documents with the document type '38' or 'A5' are * printed under the title "POLIZAS DE IMPORTACION" * (custom certificate of importations). It has a different * report layout than the other documents. ************************************************************************ TABLES: BKPF, " Accounting document header BSEG, " Accounting document segment LFA1. " Vendor master (general section) * YFCTAPOLI. "FAE2000.02.18 DATA: TOTAL_HWBAS LIKE BSEG-DMBTR, TOTAL_DIF TYPE P DECIMALS 2, TOTAL_RET_OTROS LIKE BSEG-DMBTR, TOTAL_IGV LIKE BSEG-DMBTR, TOTAL_VENDOR LIKE BSEG-DMBTR, TOTAL_CIF LIKE BSEG-DMBTR, TOTAL_AD_VAL LIKE BSEG-DMBTR, TOTAL_REINTEGRO LIKE BSEG-DMBTR, SAVE_DOCTYP(3) TYPE C, SAVE_TOTAL_DOCTYP(3) TYPE C, SAVE_BKTXT(21) TYPE C, DOCNAME(30) TYPE C, COUNT TYPE I, RAD TYPE I, SAVE_PAGE TYPE I, LIN TYPE I, FLAGGA(2) TYPE C, W_LIFNR_FLAG(1) TYPE C, W_MWSKZ_FLAG(1) TYPE C, TEMP_BELNR LIKE BSEG-BELNR. selection-screen: begin of block 1 with frame title text-001. SELECTION-SCREEN SKIP . parameters: P_COMP LIKE T001-BUKRS OBLIGATORY DEFAULT 'PE02'.

Upload: david-roque

Post on 07-Nov-2014

529 views

Category:

Entertainment & Humor


0 download

DESCRIPTION

Es un reporte en abap

TRANSCRIPT

Page 1: Report zcomprasreporte abap

REPORT ZCOMPRASREPORTENO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 65 MESSAGE-ID ZR .************************************************************************ This program extracts documents from SAP R/3, (A/P module),* to generate three (3) reports for the PUSCHASE REPORT.* This a Peruvian legal requirement and have a specific format for each* report.** All the documents (invoices, credit memos) that have been* posted between the initial date and the final date, and have at least* one line item with tax code begining with 'C' or 'R', will be selected* and written on the report.* The records are chosen according to the selection-criteria the* user shows on the screen.** The documents with the document type '38' or 'A5' are* printed under the title "POLIZAS DE IMPORTACION"* (custom certificate of importations). It has a different* report layout than the other documents.************************************************************************TABLES: BKPF, " Accounting document header BSEG, " Accounting document segment LFA1. " Vendor master (general section)* YFCTAPOLI. "FAE2000.02.18

DATA: TOTAL_HWBAS LIKE BSEG-DMBTR, TOTAL_DIF TYPE P DECIMALS 2, TOTAL_RET_OTROS LIKE BSEG-DMBTR, TOTAL_IGV LIKE BSEG-DMBTR, TOTAL_VENDOR LIKE BSEG-DMBTR, TOTAL_CIF LIKE BSEG-DMBTR, TOTAL_AD_VAL LIKE BSEG-DMBTR, TOTAL_REINTEGRO LIKE BSEG-DMBTR, SAVE_DOCTYP(3) TYPE C, SAVE_TOTAL_DOCTYP(3) TYPE C, SAVE_BKTXT(21) TYPE C, DOCNAME(30) TYPE C, COUNT TYPE I, RAD TYPE I, SAVE_PAGE TYPE I, LIN TYPE I, FLAGGA(2) TYPE C, W_LIFNR_FLAG(1) TYPE C, W_MWSKZ_FLAG(1) TYPE C, TEMP_BELNR LIKE BSEG-BELNR.

selection-screen: begin of block 1 with frame title text-001.

SELECTION-SCREEN SKIP .parameters: P_COMP LIKE T001-BUKRS OBLIGATORY DEFAULT 'PE02'.

SELECT-OPTIONS:S_BUDAT FOR BKPF-BUDAT OBLIGATORY,S_DOCTYP FOR BKPF-BLART ,S_VENDOR FOR LFA1-LIFNR ,S_TCODE FOR BKPF-TCODE.selection-screen end of block 1.

Page 2: Report zcomprasreporte abap

SELECTION-SCREEN: BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-022.SELECTION-SCREEN SKIP .

PARAMETERS: P_REP_DT AS CHECKBOX DEFAULT 'X', P_REP_SM AS CHECKBOX, P_REP_CS AS CHECKBOX.SELECTION-SCREEN SKIP .PARAMETER: P_PRINT AS CHECKBOX.SELECTION-SCREEN SKIP .SELECTION-SCREEN END OF BLOCK 2.

DATA: DOCTYP(35) TYPE C, DOCNR(10) TYPE C, TOTAL LIKE BSEG-DMBTR, DIF LIKE BSEG-DMBTR, SUMMA(1) TYPE C.

DATA: BEGIN OF LIST2 OCCURS 0, DOCTYP(3) TYPE C, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, BLART LIKE BKPF-BLART, BLDAT LIKE BKPF-BLDAT, BUDAT LIKE BKPF-BUDAT, XBLNR LIKE BKPF-XBLNR, BKTXT LIKE BKPF-BKTXT, SHKZG LIKE BSEG-SHKZG, HWBAS LIKE BSEG-HWBAS, RET_OTROS LIKE BSEG-DMBTR, IGV LIKE BSEG-DMBTR, TOTAL LIKE BSEG-DMBTR, DIF LIKE BSEG-DMBTR, HKONT LIKE BSEG-HKONT, LIFNR LIKE BSEG-LIFNR, MWSKZ LIKE BSEG-MWSKZ, STCD1 LIKE LFA1-STCD1, NAME1 LIKE LFA1-NAME1, CIF LIKE BSEG-DMBTR, AD_VAL LIKE BSEG-DMBTR, REINTEGRO LIKE BSEG-DMBTR, TCODE LIKE BKPF-TCODE, STBLG LIKE BKPF-STBLG, STJAH LIKE BKPF-STJAH, END OF LIST2.

DATA: BEGIN OF LIST3 OCCURS 0, BELNR LIKE BSEG-BELNR, SHKZG LIKE BSEG-SHKZG, HWBAS LIKE BSEG-DMBTR, DMBTR LIKE BSEG-DMBTR, SGTXT(20) TYPE C, HKONT LIKE BSEG-HKONT, LIFNR LIKE BSEG-LIFNR, MWSKZ LIKE BSEG-MWSKZ, TOTAL LIKE BSEG-DMBTR, END OF LIST3.

DATA: BEGIN OF LIST4 OCCURS 0. INCLUDE STRUCTURE LIST2.DATA: END OF LIST4.

Page 3: Report zcomprasreporte abap

DATA: BEGIN OF LIST5 OCCURS 0. INCLUDE STRUCTURE LIST2.DATA: END OF LIST5.

DATA: BEGIN OF TOTAL_LIST OCCURS 0, DOCTYP(3) TYPE C, DOCNAME(30) TYPE C, HWBAS LIKE BSEG-DMBTR, DIF LIKE BSEG-DMBTR, RET_OTROS LIKE BSEG-DMBTR, IGV LIKE BSEG-DMBTR, VENDOR LIKE BSEG-DMBTR, END OF TOTAL_LIST.

DATA: SAVE_BELNR LIKE BSEG-BELNR.

* Modified begin by FAE2000.02.18DATA ACCT8(8) TYPE C.RANGES R_ACCT FOR ACCT8.

INITIALIZATION. REFRESH R_ACCT. MOVE 'I' TO R_ACCT-SIGN. MOVE 'EQ' TO R_ACCT-OPTION.* SELECT * FROM YFCTAPOLI.* CONCATENATE '0000' YFCTAPOLI-ACCT4 INTO R_ACCT-LOW.* APPEND R_ACCT.* ENDSELECT.* Modified end by FAE2000.02.18*$*$----------------- M A I N R O U T I N E ------------------------ *

START-OF-SELECTION.

IF P_PRINT = 'X'. NEW-PAGE PRINT ON. ENDIF.

PERFORM SELECT_DATA_FROM_TABLES. PERFORM ADJUST_TO_REPORT.

IF P_REP_DT EQ 'X'. FLAGGA = 'dt'. PERFORM WRITE_DETAILED_REPORT. ENDIF.

IF P_REP_SM EQ 'X'. FLAGGA = 'sm'. PERFORM WRITE_SUMMARY_REPORT. ENDIF.

IF P_REP_CS EQ 'X'. FLAGGA = 'cs'. PERFORM WRITE_CUSTOMER_REPORT. ENDIF.

END-OF-SELECTION.*---------------------------------------------------------------------** FORM SELECT_DATA_FROM_TABLES **---------------------------------------------------------------------** ........ *

Page 4: Report zcomprasreporte abap

*---------------------------------------------------------------------*FORM SELECT_DATA_FROM_TABLES.

SELECT BELNR GJAHR BLART BLDAT BUDAT XBLNR BKTXT TCODE STBLG STJAH FROM BKPF INTO CORRESPONDING FIELDS OF LIST2 WHERE BUKRS = P_COMP AND BUDAT IN S_BUDAT AND BLART IN S_DOCTYP AND TCODE IN S_TCODE AND ( TCODE <> 'FB05' AND TCODE NOT LIKE 'FBZ%' AND TCODE NOT LIKE 'FB1%' ).

IF LIST2-TCODE = 'FB08'. "FA19990608 SELECT SINGLE * FROM BKPF WHERE BUKRS = P_COMP AND BELNR = LIST2-STBLG AND GJAHR = LIST2-STJAH AND TCODE = 'FB01'. IF SY-SUBRC NE 0. CONTINUE. ELSE. IF BKPF-BLART EQ 'A5' OR BKPF-BLART EQ '38'. MOVE BKPF-BLART TO LIST2-BLART. ENDIF. ENDIF. ENDIF. "FA19990608

clear: w_lifnr_flag, w_mwskz_flag. SELECT BELNR MWSKZ LIFNR FROM BSEG INTO CORRESPONDING FIELDS OF LIST2 where bukrs eq p_comp and belnr eq list2-belnr and gjahr eq list2-gjahr.

IF LIST2-LIFNR IN S_VENDOR AND LIST2-LIFNR NE SPACE. w_lifnr_flag = 'X'. endif.

IF LIST2-MWSKZ(1) = 'C' OR LIST2-MWSKZ(1) = 'R'. w_mwskz_flag = 'X'. endif. ENDSELECT.

if w_lifnr_flag = 'X' and w_mwskz_flag = 'X'. MOVE LIST2-XBLNR(3) TO LIST2-DOCTYP. IF LIST2-DOCTYP NE 'FAC' AND LIST2-DOCTYP NE 'NCR' AND LIST2-DOCTYP NE 'NDR' AND LIST2-DOCTYP NE 'BVT' AND LIST2-DOCTYP NE 'RCB' AND LIST2-DOCTYP NE 'PAD' AND LIST2-DOCTYP NE 'NCD' AND "FAE200.02.18 LIST2-DOCTYP NE 'NCC'. "FAE200.02.18 MOVE '000' TO LIST2-DOCTYP. ENDIF. append list2. ENDIF. ENDSELECT.

Page 5: Report zcomprasreporte abap

ENDFORM.*---------------------------------------------------------------------** FORM ADJUST_TO_REPORT **---------------------------------------------------------------------** ........ **---------------------------------------------------------------------*FORM ADJUST_TO_REPORT.

LOOP AT LIST2. MOVE LIST2 TO LIST4. SELECT HWBAS DMBTR HKONT LIFNR MWSKZ SGTXT SHKZG FROM BSEG INTO CORRESPONDING FIELDS OF LIST3 WHERE BUKRS EQ P_COMP AND BELNR = LIST2-BELNR AND GJAHR = LIST2-GJAHR .

IF LIST3-SHKZG = 'H'. LIST3-DMBTR = LIST3-DMBTR * -1. ENDIF.

IF LIST3-SHKZG = 'S'. LIST3-HWBAS = LIST3-HWBAS * -1. ENDIF.

IF LIST4-DOCTYP = 'RCB' AND LIST3-HKONT = '0000255090' AND LIST3-MWSKZ <> 'R0'. LIST3-TOTAL = ( LIST3-HWBAS + LIST3-DMBTR ). MOVE LIST3-TOTAL TO LIST4-TOTAL. ENDIF.

IF LIST3-LIFNR NE ''. MOVE LIST3-MWSKZ TO LIST4-MWSKZ. MOVE LIST3-LIFNR TO LIST4-LIFNR. MOVE LIST3-DMBTR TO LIST4-TOTAL. ENDIF.

IF LIST3-HKONT = '0000264101' OR LIST3-HKONT = '0000255090'. MOVE LIST3-HWBAS TO LIST4-HWBAS. ENDIF.

IF LIST3-HKONT = '0000264102' OR LIST3-HKONT = '0000255090'. MOVE LIST3-DMBTR TO LIST4-RET_OTROS. ELSEIF LIST3-HKONT = '0000264101'. MOVE LIST3-DMBTR TO LIST4-IGV. ENDIF.

* if ( list3-hkont(8) eq '00001483' or "FAE19990716* list3-hkont(8) eq '00001681' or "FAE19990716* list3-hkont(8) eq '00001689' or "FAE19990716* list3-hkont(8) eq '00005420' or "FAE19990716* list3-hkont(8) eq '00005440' or "FAE19990716* list3-hkont(8) eq '00005511' or "FAE19990716* list3-hkont(8) eq '00005570' or "FAE19990716* list3-hkont(8) eq '00005720' or "FAE19990716* list3-hkont(8) eq '00005932' or "FAE19990716* list3-hkont(8) eq '00006010' or "FAE19990716* list3-hkont(8) eq '00006098' or "FAE19990716

Page 6: Report zcomprasreporte abap

* list3-hkont(8) eq '00006110' or "FAE19990716* list3-hkont(8) eq '00006592' or "FAE19990716* list3-hkont(8) eq '00006992' ). "FAE19990716 IF LIST3-HKONT(8) IN R_ACCT. IF LIST3-SGTXT(3) EQ 'CIF'. MOVE LIST3-DMBTR TO LIST4-CIF. ELSEIF LIST3-SGTXT(10) EQ 'AD-VALOREM'. MOVE LIST3-DMBTR TO LIST4-AD_VAL. ELSEIF LIST3-SGTXT(9) EQ 'REINTEGRO'. MOVE LIST3-DMBTR TO LIST4-REINTEGRO. ENDIF. ENDIF. ENDSELECT.

IF LIST4-DOCTYP EQ 'RCB'. LIST4-DIF = LIST4-TOTAL - LIST4-HWBAS - LIST4-RET_OTROS + LIST4-IGV. ELSE. LIST4-DIF = LIST4-TOTAL - LIST4-HWBAS + LIST4-RET_OTROS + LIST4-IGV.

ENDIF. SELECT NAME1 STCD1 FROM LFA1 INTO CORRESPONDING FIELDS OF LIST4 WHERE LIFNR = LIST4-LIFNR. ENDSELECT. APPEND LIST4. CLEAR LIST4. ENDLOOP.

SORT LIST4 BY DOCTYP XBLNR BUDAT BLART.

ENDFORM.*&---------------------------------------------------------------------**& Form WRITE_COLUMN_NAME*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM WRITE_COLUMN_NAME. SKIP. WRITE:/ TEXT-004, 13 TEXT-004, 26 TEXT-007, 58 TEXT-009, 76 TEXT-011, 98 TEXT-013, 116 TEXT-015, 136 TEXT-017, 153 TEXT-019, "total 171 TEXT-020. " origen referencia

WRITE:/ TEXT-005, 13 TEXT-006, 26 TEXT-008, 58 TEXT-010, 76 TEXT-012, 98 TEXT-014, 116 TEXT-016, 136 TEXT-018, 153 TEXT-005, 181 TEXT-021. ULINE.ENDFORM. " WRITE_COLUMN_NAME

*&---------------------------------------------------------------------**& Form WRITE_DETAILED_REPORT*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*

Page 7: Report zcomprasreporte abap

FORM WRITE_DETAILED_REPORT.

DESCRIBE TABLE LIST4 LINES RAD. IF RAD LT 1. MESSAGE E102. ENDIF. CLEAR RAD. NEW-PAGE .

REFRESH LIST5. LOOP AT LIST4 WHERE BLART NE 'A5' AND BLART NE '38'.* if list4-mwskz ne 'CN'. "FAE09071999 MOVE LIST4 TO LIST5. APPEND LIST5.* endif. "FAE09071999 ENDLOOP.*BREAK-POINT. LOOP AT LIST5.

CASE LIST5-DOCTYP. WHEN 'FAC'. DOCNAME = TEXT-039. "FAE2000.02.18 WHEN 'NDR'. DOCNAME = TEXT-040. "FAE2000.02.18 WHEN 'NCR' . DOCNAME = TEXT-041. "FAE2000.02.18 WHEN 'BVT'. DOCNAME = TEXT-044. "FAE2000.02.18 WHEN 'RCB'. DOCNAME = TEXT-042. "FAE2000.02.18 WHEN 'PAD'. DOCNAME = TEXT-043. "FAE2000.02.18 WHEN 'NCD'. DOCNAME = TEXT-045. "FAE2000.02.18 WHEN 'NCC'. DOCNAME = TEXT-046. "FAE2000.02.18 WHEN '000'. DOCNAME = 'OTROS'. ENDCASE.

AT NEW DOCTYP. NEW-PAGE. SAVE_DOCTYP = LIST5-DOCTYP. PERFORM WRITE_GENERAL_TITLE. SKIP. WRITE: /73 TEXT-003, 93 DOCNAME. SKIP . PERFORM WRITE_COLUMN_NAME. ENDAT.DATA: CAD(20) TYPE C, NAN(3) TYPE C, UNE(10) TYPE C.NAN = 'AÑO'.CONCATENATE NAN LIST5-BLDAT+0(4) INTO UNE.CONCATENATE LIST5-NAME1+0(4) UNE INTO CAD SEPARATED BY '_'. IF LIST5-DOCTYP = SAVE_DOCTYP.* WRITE : / LIST5-XBLNR+4,* 13 LIST5-STCD1,* 26 LIST5-NAME1,* 58 LIST5-BLDAT,* 70 LIST5-HWBAS,* 92 LIST5-DIF,* 111 LIST5-RET_OTROS,

Page 8: Report zcomprasreporte abap

* 129 LIST5-IGV,* 148 LIST5-TOTAL,* 171 LIST5-MWSKZ. WRITE : / LIST5-XBLNR+4, 13 LIST5-STCD1, 22 LIST5-NAME1, 58 LIST5-BLDAT, 71 CAD, 93 LIST5-HWBAS, 112 LIST5-DIF, 130 LIST5-RET_OTROS, 149 LIST5-IGV, 172 LIST5-TOTAL, 190 LIST5-MWSKZ.

IF ( LIST5-XBLNR(3) EQ 'NDR' OR LIST5-XBLNR(3) EQ 'NCR' ). WRITE: 178 LIST5-BKTXT. ELSEIF LIST5-DOCTYP EQ '000'. WRITE: 178 'Doc.SAP:', LIST5-BELNR, P_COMP, LIST5-GJAHR. ENDIF.

ADD LIST5-HWBAS TO TOTAL_HWBAS. ADD LIST5-DIF TO TOTAL_DIF. ADD LIST5-IGV TO TOTAL_IGV. ADD LIST5-TOTAL TO TOTAL_VENDOR. ADD LIST5-RET_OTROS TO TOTAL_RET_OTROS.

ENDIF.

AT END OF DOCTYP. SKIP 2. WRITE: /10 'TOTAL', DOCNAME, 70 TOTAL_HWBAS, 91 TOTAL_DIF, 111 TOTAL_RET_OTROS, 129 TOTAL_IGV, 148 TOTAL_VENDOR.

CLEAR: TOTAL_HWBAS, TOTAL_DIF, TOTAL_RET_OTROS, TOTAL_IGV, TOTAL_VENDOR, SAVE_DOCTYP. ENDAT. ENDLOOP.

ENDFORM. " WRITE_DETAILED_REPORT

*&---------------------------------------------------------------------**& Form WRITE_SUMMARY_REPORT*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM WRITE_SUMMARY_REPORT. NEW-PAGE.

DESCRIBE TABLE LIST4 LINES RAD.

Page 9: Report zcomprasreporte abap

IF RAD LT 1. MESSAGE E102. ENDIF. PERFORM WRITE_GENERAL_TITLE. WRITE: /87 TEXT-032. SKIP. ULINE. SKIP.WRITE: / TEXT-033, 27 TEXT-034, 52 TEXT-035, 77 TEXT-036, 100 TEXT-037, 125 TEXT-038. SKIP.

SORT LIST4 BY DOCTYP. REFRESH LIST5.

LOOP AT LIST4 WHERE BLART NE 'A5' AND BLART NE '38'.* if list4-mwskz ne 'CN'. "FAE09071999 MOVE LIST4 TO LIST5. APPEND LIST5.* endif. "FAE09071999 ENDLOOP.

LOOP AT LIST5.

AT NEW DOCTYP. SAVE_DOCTYP = LIST5-DOCTYP. ENDAT.

IF LIST5-DOCTYP EQ SAVE_DOCTYP. MOVE SAVE_DOCTYP TO SAVE_TOTAL_DOCTYP. ADD LIST5-HWBAS TO TOTAL_HWBAS. ADD LIST5-DIF TO TOTAL_DIF. ADD LIST5-IGV TO TOTAL_IGV. ADD LIST5-TOTAL TO TOTAL_VENDOR. ADD LIST5-RET_OTROS TO TOTAL_RET_OTROS. ENDIF.

AT END OF DOCTYP. MOVE LIST5-DOCTYP TO TOTAL_LIST-DOCTYP.

CASE TOTAL_LIST-DOCTYP.

WHEN '000'. MOVE TEXT-047 TO TOTAL_LIST-DOCNAME. WHEN 'FAC'. MOVE TEXT-039 TO TOTAL_LIST-DOCNAME. WHEN 'NDR'. MOVE TEXT-040 TO TOTAL_LIST-DOCNAME. WHEN 'NCR' . MOVE TEXT-041 TO TOTAL_LIST-DOCNAME. WHEN 'BVT'. MOVE 'BOLETA DE VENTA' TO TOTAL_LIST-DOCNAME. WHEN 'RCB'. MOVE TEXT-042 TO TOTAL_LIST-DOCNAME. WHEN 'PAD'. MOVE TEXT-043 TO TOTAL_LIST-DOCNAME. WHEN 'NCD'. MOVE TEXT-045 TO TOTAL_LIST-DOCNAME.

Page 10: Report zcomprasreporte abap

WHEN 'NCC'. MOVE TEXT-046 TO TOTAL_LIST-DOCNAME. ENDCASE.

MOVE TOTAL_HWBAS TO TOTAL_LIST-HWBAS. MOVE TOTAL_DIF TO TOTAL_LIST-DIF. MOVE TOTAL_IGV TO TOTAL_LIST-IGV. MOVE TOTAL_VENDOR TO TOTAL_LIST-VENDOR. MOVE TOTAL_RET_OTROS TO TOTAL_LIST-RET_OTROS.

WRITE: /1 TOTAL_LIST-DOCNAME, 25 TOTAL_LIST-HWBAS, 50 TOTAL_LIST-DIF, 75 TOTAL_LIST-RET_OTROS, 100 TOTAL_LIST-IGV, 125 TOTAL_LIST-VENDOR.

APPEND TOTAL_LIST.

CLEAR: TOTAL_HWBAS, TOTAL_DIF, TOTAL_RET_OTROS, TOTAL_IGV, TOTAL_VENDOR. ENDAT. ENDLOOP. " loop at list5

LOOP AT TOTAL_LIST.

AT LAST. SUM. SKIP. WRITE: / TEXT-050, 25 TOTAL_LIST-HWBAS, 50 TOTAL_LIST-DIF, 75 TOTAL_LIST-RET_OTROS, 100 TOTAL_LIST-IGV, 125 TOTAL_LIST-VENDOR. ENDAT. ENDLOOP. SKIP 2.

ENDFORM. " WRITE_SUMMARY_REPORT*&---------------------------------------------------------------------**& Form WRITE_CUSTOMER_REPORT*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM WRITE_CUSTOMER_REPORT. SORT LIST4 BY BLART. NEW-PAGE.

LOOP AT LIST4 WHERE BLART = 'A5' OR BLART = '38'.

WRITE: / LIST4-BKTXT+4, 30 LIST4-NAME1, 65 LIST4-XBLNR,

Page 11: Report zcomprasreporte abap

85 LIST4-BLDAT, 95 LIST4-CIF, 114 LIST4-AD_VAL, 135 LIST4-RET_OTROS, 155 LIST4-IGV, 175 LIST4-REINTEGRO, 195 LIST4-TOTAL.

ADD LIST4-CIF TO TOTAL_CIF. ADD LIST4-AD_VAL TO TOTAL_AD_VAL. ADD LIST4-IGV TO TOTAL_IGV. ADD LIST4-TOTAL TO TOTAL_VENDOR. ADD LIST4-REINTEGRO TO TOTAL_REINTEGRO. ADD LIST4-RET_OTROS TO TOTAL_RET_OTROS.

ENDLOOP. SKIP. WRITE: /20 'TOTAL COMPANIA:', 95 TOTAL_CIF, 115 TOTAL_AD_VAL, 135 TOTAL_RET_OTROS, 155 TOTAL_IGV, 175 TOTAL_REINTEGRO, 195 TOTAL_VENDOR. SKIP.

ENDFORM. " WRITE_CUSTOMER_REPORT

*&---------------------------------------------------------------------**& Form WRITE_GENERAL_TITLE*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM WRITE_GENERAL_TITLE. SKIP TO LINE 2. WRITE : /73 TEXT-002, S_BUDAT-LOW. IF S_BUDAT-HIGH IS INITIAL. ELSE. WRITE: ' AL ' . WRITE: S_BUDAT-HIGH. ENDIF.

ENDFORM. " WRITE_GENERAL_TITLE*&---------------------------------------------------------------------**& Form WRITE_COLUMN_REP2*&---------------------------------------------------------------------** text **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM WRITE_COLUMN_REP2.

WRITE: / TEXT-004, 30 TEXT-007, 65 TEXT-004, 143 TEXT-024, 204 TEXT-019.

WRITE:/ TEXT-025, 30 TEXT-008, 65 TEXT-027, 85 TEXT-009, 105 TEXT-028, 119 TEXT-029,

Page 12: Report zcomprasreporte abap

143 TEXT-030, 165 TEXT-017, 181 TEXT-031, 204 TEXT-027. ULINE.

ENDFORM. " WRITE_COLUMN_REP2**********************************************************************TOP-OF-PAGE. SKIP TO LINE 2. WRITE : /177 'PAG. :' , SY-PAGNO. WRITE : /177 'FECHA:' , SY-DATUM. WRITE : /177 'HORA :' , SY-UZEIT. SKIP.

CASE FLAGGA. WHEN 'cs' . SKIP TO LINE 2. PERFORM WRITE_GENERAL_TITLE. SKIP. WRITE: /73 TEXT-023. SKIP. PERFORM WRITE_COLUMN_REP2. WHEN 'dt'. SKIP TO LINE 2. PERFORM WRITE_GENERAL_TITLE. SKIP. WRITE: /73 TEXT-003, 93 DOCNAME. SKIP. PERFORM WRITE_COLUMN_NAME.ENDCASE.

DOCUMENTANDO:

LISTA4: ES UNA TABLA QUE CONTIEN UNA ETSRUCTURA LLAMADA LIST2 TAL COMO SE MUESTRA EN EL CODIGO.

DATA: BEGIN OF LIST4 OCCURS 0. INCLUDE STRUCTURE LIST2.DATA: END OF LIST4.

LOS CAMPOS QUE TIENE LA ESTARUCTURA LIST2 INCLUDIA EN LA TABLA LISTA4 SON:

DATA: BEGIN OF LIST2 OCCURS 0, DOCTYP(3) TYPE C, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, BLART LIKE BKPF-BLART, BLDAT LIKE BKPF-BLDAT, BUDAT LIKE BKPF-BUDAT, XBLNR LIKE BKPF-XBLNR, BKTXT LIKE BKPF-BKTXT, SHKZG LIKE BSEG-SHKZG, HWBAS LIKE BSEG-HWBAS, RET_OTROS LIKE BSEG-DMBTR, IGV LIKE BSEG-DMBTR, TOTAL LIKE BSEG-DMBTR, DIF LIKE BSEG-DMBTR, HKONT LIKE BSEG-HKONT, LIFNR LIKE BSEG-LIFNR, MWSKZ LIKE BSEG-MWSKZ, STCD1 LIKE LFA1-STCD1, NAME1 LIKE LFA1-NAME1, CIF LIKE BSEG-DMBTR,

Page 13: Report zcomprasreporte abap

AD_VAL LIKE BSEG-DMBTR, REINTEGRO LIKE BSEG-DMBTR, TCODE LIKE BKPF-TCODE, STBLG LIKE BKPF-STBLG, STJAH LIKE BKPF-STJAH, END OF LIST2.

EN EL REPORTE DE COMRPAS QUE SE MUESTRA TENEMOS LOS SIGUIENTES CAMPOS COMO SON POR ORDEN DE IZQUIERDA A DERECHA LOS SGTES:

LIST5-STCD1: HEREDA DE LFA1-STCD1STCD1 ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA LFA1 Y DEL CAMPO STCD1, LFA1 ES LA TABLA MAESTRA DE PROVEEDORES Y STCD1 ALMACENA EL NUMERO DE IDENTIFICACION FISCAL.

LIST5-NAME1: HEREDA DE LFA1-NAME1NAME1 ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA LFA1 Y DEL CAMPO NAME1, LFA1 ES LA TABLA MAESTRA DE PROVEEDORES Y NAME1 ALMACENA EL NOMBRE DEL PROVEEDOR.

LIST5-BLDAT: HEREDA DE BKPF-BLDATBLDAT ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BKPF Y DEL CAMPO BLDAT, BKPF ES LA TABLA DE CABECERA DEL DOCUMENTO DE CONTABLIDAD Y BLDAT ES EL CAMPO QUE ALMACENA LA FECHA DEL DOCUMENTO.

LIST5-HWBAS: HEREDA DE LIKE BSEG-HWBASHWBAS ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BSEG Y DEL CAMPO HWBAS, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y HWBAS ES EL CAMPO QUE ALMACENA IMPORTE BASE DEL IMPUESTO EN MONEDA LOCAL.

LIST5-DIF: HEREDA DE LIKE BSEG-DMBTRDMBTR ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BSEG Y DEL CAMPO DMBTR, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y DMBTR ES EL CAMPO QUE ALMACENA IMPORTE BASE DEL IMPUESTO EN MONEDA LOCAL.

LIST5-RET_OTROS: HEREDA DE LIKE BSEG-DMBTRDMBTR ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BSEG Y DEL CAMPO DMBTR, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y DMBTR ES EL CAMPO QUE ALMACENA IMPORTE BASE DEL IMPUESTO EN MONEDA LOCAL.

LIST5-IGV: HEREDA DE LIKE BSEG-DMBTRDMBTR ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BSEG Y DEL CAMPO DMBTR, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y DMBTR ES EL CAMPO QUE ALMACENA IMPORTE BASE DEL IMPUESTO EN MONEDA LOCAL.

LIST5-TOTAL: HEREDA DE LIKE BSEG-DMBTRDMBTR ES UN CAMPO QUE ES EXTRAIDO DE LA TABLA BSEG Y DEL CAMPO DMBTR, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y

Page 14: Report zcomprasreporte abap

DMBTR ES EL CAMPO QUE ALMACENA IMPORTE BASE DEL IMPUESTO EN MONEDA LOCAL.

LIST5-MWSKZ: HEREDA DE LIKE BSEG-MWSKZMWSKZ ES UN CAMPO QUE ES EXTRAIDO DE LA TABAL BSEG Y DEL CAMPO MWSKZ, BSEG ES LA TABLA DE DETALLE DEL DOCUMENTO DE CONTABLIDAD Y DMBTR ES EL CAMPO QUE ALMACENA EL INDICADOR IVA.