0% found this document useful (0 votes)
711 views

Excel Ole Abap

This document contains code for generating an Excel summary report from SAP data. It loops through transactional data, extracts key fields, and inserts the values into cells on multiple sheets. Formulas are used to calculate totals. The report is saved with a specified filename and file format before closing the Excel application.

Uploaded by

prabha2311
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
711 views

Excel Ole Abap

This document contains code for generating an Excel summary report from SAP data. It loops through transactional data, extracts key fields, and inserts the values into cells on multiple sheets. Formulas are used to calculate totals. The report is saved with a specified filename and file format before closing the Excel application.

Uploaded by

prabha2311
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

DATA: WT_EXCEL TYPE TABLE OF TY_SUMM, WA_EXCEL TYPE TY_SUMM.

DATA: application TYPE ole2_object, workbook TYPE ole2_object, sheet TYPE ole2_object, cells TYPE ole2_object, COLUMN TYPE ole2_object, range TYPE ole2_object. CONSTANTS: row_max TYPE i VALUE 256. DATA: row TYPE i, col TYPE i, t1_row_start(2) TYPE N, t1_row_end(2) TYPE N, t2_row_start(2) TYPE N, t2_row_end(2) TYPE N. DATA: adv_pymt_date(12), par_pymt_date(12), fin_pymt_date(12). DATA: SUR_CHG TYPE P DECIMALS 2, GST TYPE P DECIMALS 2, GST_PER TYPE P DECIMALS 2 VALUE '0.07', SCHARGE TYPE P DECIMALS 2, R_AMT TYPE P DECIMALS 2, DATE1(30), DATE2(30), FORMULA(100). CREATE OBJECT application 'excel.application'. SET PROPERTY OF application 'visible' = 1. CALL METHOD OF application 'Workbooks' = workbook. CALL METHOD OF workbook 'Add'. * Create first Excel Sheet CALL METHOD OF application 'Worksheets' = sheet EXPORTING #1 = 1. CALL METHOD OF sheet 'Activate'. SET PROPERTY OF sheet 'Name' = 'Sheet1'. PERFORM fill_cell USING 1 6 1 'SUMMARY REPORT' sheet. CALL METHOD OF sheet 'RANGE' = range EXPORTING #1 = 'A1' #2 = 'F1'. CALL METHOD OF range 'SELECT'. SET PROPERTY OF range 'MERGE' = 1. SET PROPERTY OF range 'Alignment' = '3'. PERFORM PERFORM PERFORM PERFORM fill_cell fill_cell fill_cell fill_cell USING USING USING USING 2 3 3 3 1 1 5 6 1 1 1 1 'Service Charge' sheet. 'INVOICE NO' sheet. 'SGD' sheet. 'SGD' sheet.

t1_row_start = 4.

LOOP AT WT_0510 WHERE CHK = WC_TRUE AND FINAL_PYMT_IND = WC_TRUE AND REQ_ADV_PYMT > 0. CLEAR WA_SUMM. WA_SUMM-INV_NO = WT_0510-INV_NO. WA_SUMM-SERV_CHARGE_RATE = WT_0510-SERV_CHARGE_RATE. WA_SUMM-INV_AMT = WT_0510-INV_AMT. WA_SUMM-SERV_CHARGE_AMT = WT_0510-SERV_CHARGE_AMT. WA_SUMM-ADV_PYMT_DATE = WT_0510-ADV_PYMT_DATE. WA_SUMM-PAR_PYMT_DATE = WT_0510-PAR_PYMT_DATE. WA_SUMM-FACT_DISC_RATE = WT_0510-FACT_DISC_RATE. WA_SUMM-PAR_PYMT_AMT = WT_0510-PAR_PYMT_AMT. WA_SUMM-P_FACT_DISC_AMT = WT_0510-P_FACT_DISC_AMT. WA_SUMM-FACT_DISC_AMT = WT_0510-FACT_DISC_AMT. WA_SUMM-FIN_PYMT_DATE = WT_0510-FIN_PYMT_DATE. WA_SUMM-REQ_ADV_PYMT = WT_0510-REQ_ADV_PYMT. APPEND WA_SUMM TO WT_SUMM. ENDLOOP. *col = 1. LOOP AT WT_0510 WHERE CHK = WC_TRUE AND FINAL_PYMT_IND = WC_TRUE AND REQ_ADV_PYMT > 0. IF WT_0510-INV_NO IS NOT INITIAL. row = sy-tabix + 3. col = 1. PERFORM fill_cell USING row col 0 WT_0510-INV_NO sheet. col = col + 2. PERFORM fill_cell USING row col 0 WT_0510-SERV_CHARGE_RATE sheet. col = col + 1. PERFORM fill_cell USING row col 0 'of' sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-INV_AMT sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-SERV_CHARGE_AMT sheet. SUR_CHG = SUR_CHG + WT_0510-SERV_CHARGE_AMT. ENDIF. ENDLOOP. row = row + 1. PERFORM fill_cell USING row col 1 SUR_CHG sheet. row = row + 1. PERFORM fill_cell USING row 2 0 'Add 7% GST' sheet. GST = SUR_CHG * GST_PER. PERFORM fill_cell USING row col 1 GST sheet. row = row + 1. SCHARGE = SUR_CHG + GST. PERFORM fill_cell USING row col 1 SCHARGE sheet. t1_row_end = row. row = row + 2. PERFORM fill_cell USING row 1 1 'Factoring Discount' sheet. t2_row_start = row + 1. LOOP AT WT_0510 WHERE CHK = WC_TRUE AND FINAL_PYMT_IND = WC_TRUE AND REQ_ADV_PYMT > 0.

concatenate WT_0510-ADV_PYMT_DATE+6(2) '/' WT_0510-ADV_PYMT_DATE+4(2)'/' WT_0 510-ADV_PYMT_DATE+2(2) into adv_pymt_date. concatenate WT_0510-PAR_PYMT_DATE+6(2) '/' WT_0510-PAR_PYMT_DATE+4(2)'/' WT_0 510-PAR_PYMT_DATE+2(2) into par_pymt_date. concatenate WT_0510-FIN_PYMT_DATE+6(2) '/' WT_0510-FIN_PYMT_DATE+4(2)'/' WT_0 510-FIN_PYMT_DATE+2(2) into fin_pymt_date. CONCATENATE '(' ADV_PYMT_DATE ' - ' PAR_PYMT_DATE ')' INTO DATE1. CONCATENATE '(' ADV_PYMT_DATE ' - ' FIN_PYMT_DATE ')' INTO DATE2. IF WT_0510-INV_NO IS NOT row = row + 1. col = 1. PERFORM fill_cell USING PERFORM fill_cell USING PERFORM fill_cell USING INITIAL. row col 0 WT_0510-INV_NO sheet. col = col + 1. row col 0 DATE1 sheet. col = col + 1. row col 0 WT_0510-FACT_DISC_RATE sheet. col = col + 1.

PERFORM fill_cell USING row col 0 'of' sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-PAR_PYMT_AMT sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-P_FACT_DISC_AMT sheet. row = row + 1. col = 1. PERFORM fill_cell USING row col 0 WT_0510-INV_NO sheet. col = col + 1. PERFORM fill_cell USING row col 0 DATE2 sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-FACT_DISC_RATE sheet. col = col + 1. PERFORM fill_cell USING row col 0 'of' sheet. col = col + 1. R_AMT = WT_0510-REQ_ADV_PYMT - WT_0510-PAR_PYMT_AMT. PERFORM fill_cell USING row col 0 R_AMT sheet. col = col + 1. PERFORM fill_cell USING row col 0 WT_0510-FACT_DISC_AMT sheet. ENDIF. ENDLOOP. t2_row_end = row. row = row + 1. CONCATENATE '=SUM(F' t2_row_start ':F' t2_row_end ')' INTO FORMULA. PERFORM fill_cell USING row col 1 formula sheet. col = col - 1. CLEAR FORMULA. CONCATENATE '=SUM(E' t2_row_start ':E' t2_row_end ')' INTO FORMULA. PERFORM fill_cell USING row col 1 formula sheet. row = row + 1. col = 2. PERFORM fill_cell USING row col 0 'Add GST-exempt' sheet. col = 6. PERFORM fill_cell USING row col 0 '0.00' sheet. t2_row_start = row. t2_row_end = t2_row_end + 1. CONCATENATE '=SUM(F' t2_row_start ',F' t2_row_end ')' INTO FORMULA. row = row + 1.

PERFORM fill_cell USING row col 1 formula sheet. row = row + 1. col = 2. CLEAR FORMULA. t2_row_end = t2_row_end + 2. CONCATENATE '=SUM(F' t1_row_end ',F' t2_row_end ')' INTO FORMULA. PERFORM fill_cell USING row col 1 'TOTAL PAYABLE' sheet. col = 6. PERFORM fill_cell USING row col 1 formula sheet. CALL METHOD OF application 'COLUMNS' = COLUMN. CALL METHOD OF COLUMN 'AUTOFIT'. * Save excel speadsheet to particular filename CALL METHOD OF sheet 'SaveAs' EXPORTING #1 = wf_filename #2 = 1. * Closes excel window, data is lost if not saved * SET PROPERTY OF application 'visible' = 0. ENDFORM.

"filename "fileFormat

You might also like