demand:
2, balance sheet, income statement export optimization, as more stores in the project company, the need to increase bulk export function. Press export tax payer dimension execl file, enter a few taxable entity, it generates several execl file.
achieve:
Program submit ZFIR0014 ZFIR0014XLS, each time passing a taxable entity, to achieve a more export EXCEL
SORT lt_nszt BY znsztbm. DELETE ADJACENT DUPLICATES FROM lt_nszt COMPARING znsztbm. LOOP AT lt_nszt. CLEAR:rt_nszt[]. rt_nszt = VALUE #( ( sign = 'I' option = 'EQ' low = lt_nszt-znsztbm high = '' ) ). SUBMIT zfir0014 WITH p_bukrs IN p_bukrs WITH p_tpaye IN rt_nszt WITH p_gjahr IN p_gjahr WITH p_monat = p_monat AND RETURN. * WITH p_rg1 = '' * WITH p_rg2 = 'X' * WITH repfile = repfile ENDLOOP.
But the testing process encountered several EXCEL strange error, Excel errors are not familiar with, do not know how to find a cause, we need to study
Problem: 1. Double-click to open the EXCEL file, flashed no response, the document does not open
2. Open the EXCEL file, for the first time to see the data, close, and open again, EXCEL file data is gone sheet2
3. EXCEL error by my own user opened, has been locked
EXCEL exported function source
函数:Z_SAVE_INITABLE_TO_EXCEL
FUNCTION Z_SAVE_INITABLE_TO_EXCEL. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(IV_TYPES) TYPE CHAR1 *" VALUE(IV_VISIBLE) TYPE I DEFAULT 1 *" REFERENCE(IV_FILENAME) *" TABLES *" IT_TABLE STRUCTURE ZFAGL_EXCEL *" EXCEPTIONS *" NO_RECORD *"---------------------------------------------------------------------- INCLUDE ole2incl. DATA: excel TYPE ole2_object. "Excel Object DATA: books TYPE ole2_object. "List of workbooks DATA: range TYPE ole2_object. DATA: book TYPE ole2_object. "workbook DATA: worksheets TYPE ole2_object. "workbook DATA: sheets TYPE ole2_object. "workbook DATA: cells TYPE ole2_object. "workbook DATA: s1(10) TYPE c, s2(10) TYPE c, msg(100) TYPE c. DEFINE insert_excel_row. call method of sheets 'ROWS' = range exporting #1 = &1. call method of range 'INSERT' . END-OF-DEFINITION. DEFINE write_excel_cells. call method of excel 'Cells' = cells exporting #1 = &1 #2 = &2. set property of cells 'VALUE' = &3. END-OF-DEFINITION. s1 = lines( it_table[] ) . IF s1 = 0. MESSAGE '没有满足条件的记录!' TYPE 'I' . RAISE no_record. ENDIF. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = 0 text = '正在处理Excel文件......' EXCEPTIONS OTHERS = 1. * ********打开EXCEL表************ CREATE OBJECT excel 'Excel.Application'. SET PROPERTY OF excel 'VISIBLE' = 0. CALL METHOD OF excel 'WORKBOOKS' = books. CALL METHOD OF books 'OPEN' = book EXPORTING #1 = iv_filename. "本地文件地址和文件名 * 选择Sheets 2 CALL METHOD OF excel 'Sheets' = sheets EXPORTING #1 = 2. CALL METHOD OF sheets 'Select'. * 激活选择的sheets * CALL METHOD OF * SHEETS * 'ACTIVATE'. * 把内表数据写入到 sheet2 中。 SORT it_table BY zzcode DESCENDING. LOOP AT it_table. s2 = sy-tabix. CONDENSE: s1,s2. CONCATENATE '正在写入EXCEL:' s2 '/' s1 '......' INTO msg. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = 2 text = msg EXCEPTIONS OTHERS = 1. insert_excel_row sy-tabix. write_excel_cells:sy-tabix 1 it_table-zzcode, sy-tabix 2 it_table-zzitemcn, sy-tabix 3 it_table-ncbtr, sy-tabix 4 it_table-qmbtr, sy-tabix 5 it_table-butxt, sy-tabix 6 it_table-monat, sy-tabix 7 it_table-hsldt, sy-tabix 8 it_table-hsldt_total, sy-tabix 9 it_table-hsldt_before, sy-tabix 10 it_table-hsldt_year_total, sy-tabix 11 it_table-hsldt_before_year, sy-tabix 12 it_table-attrx1, sy-tabix 13 it_table-attrx2, sy-tabix 14 it_table-attrx3, sy-tabix 15 it_table-attr1, sy-tabix 16 it_table-attr2, sy-tabix 17 it_table-attr3, sy-tabix 18 it_table-attr4, sy-tabix 19 it_table-attr5, sy-tabix 20 it_table-attr6, sy-tabix 21 it_table-attr7, sy-tabix 22 it_table-attr8, sy-tabix 23 it_table-attr9, sy-tabix 24 it_table-attr10, sy-tabix 25 it_table-attr11, sy-tabix 26 it_table-attr12 . ENDLOOP. * 选择Sheets 1 SET PROPERTY OF excel 'VISIBLE' = iv_visible. CALL METHOD OF excel 'Sheets' = sheets EXPORTING #1 = 1. CALL METHOD OF sheets 'Select'. * 激活选择的sheets CALL METHOD OF sheets 'ACTIVATE'. SET PROPERTY OF book 'SAVED' = 0. * SET PROPERTY OF excel 'Visible' = 1. FREE OBJECT book. ENDFUNCTION.