Simmike написал(а):
Пасиб

В принципе во всем разобрался.... Щас тестю програмку, кодик позже выложу, там вроде все это будет...

Вот выкладываю кодик...
Выгружает в Эксель табличку с 10-столбцами. Есть пармеитры по листам, имени файла и др
Code:
report z__my_doi .
data: i_control type ref to i_oi_container_control.
data: i_document type ref to i_oi_document_proxy.
data: gr_container type ref to cl_gui_custom_container.
data: begin of gt_test occurs 0,
st1(132), st2(132), st3(132), st4(132), st5(132), st6(132),
st7(132), st8(132), st9(132), st0(132),
end of gt_test.
data: kk(2). " счетчик листов
data: name_old(20).
data: name_new(20).
parameter: f_name(30) default 'c:/my_excel.xls'. " имя файлика
parameter: n_list(15) default 'Мой Лист №'. " название листа (ов)
parameter: k_list(2) type n default 1. " kol-во листов
parameter: save as checkbox. " параметр сохранения файла
parameter: close as checkbox. " параметр закрытия файла и сохранения
*&---------------------------------------------------------------------*
start-of-selection.
perform preparation.
perform excel_processing.
*&---------------------------------------------------------------------*
*& Form preparation
form preparation.
* Creating the instance i_control
call method c_oi_container_control_creator=>get_container_control
importing
control = i_control.
* Initializing control
call method i_control->init_control
exporting
r3_application_name = 'R/3 application'
parent = gr_container
inplace_enabled = ' '
no_flush = ' '.
endform. "preparation
* тупо заполняю внутр табличку....
form full_int_tab.
do 10 times.
gt_test-st1 = 'abcdefg'. gt_test-st2 = '10.07'. gt_test-st3 = '11,01'.
gt_test-s4 = '1.03'. gt_test-st5 = 'hij6'. gt_test-st6 = 'hijklmn12318'.
gt_test-st7 = 'hijklmn65'. gt_test-st8 = 'hijklmn'. gt_test-st9 = 'hijk2'.
gt_test-st0 = 'hijklmer676n'. append gt_test.
enddo.
clear gt_test.
do 10 times. append gt_test. enddo.
do 10 times.
gt_test-st1 = 'abcdefg'. gt_test-st3 = 'hijklmn3'. gt_test-st6 = 'hi488'.
gt_test-st8 = 'hiваывn'. gt_test-st0 = 'hijk76n'. append gt_test.
enddo.
endform.
*&---------------------------------------------------------------------*
*& Form excel_processing
form excel_processing.
data i_spreadsheet type ref to i_oi_spreadsheet.
data gt_ftab type soi_fields_table with header line.
data: error(1).
call method i_control->get_document_proxy
exporting
document_type = 'Excel.Sheet.8'
register_container = 'X'
importing
document_proxy = i_document.
call method i_document->create_document
exporting
document_title = 'выгрузке из SAP'
open_inplace = ' '.
call method i_document->get_spreadsheet_interface
importing
sheet_interface = i_spreadsheet.
*** заполняем внутр табл
refresh gt_test. perform full_int_tab.
****
call function 'DP_GET_FIELDS_FROM_TABLE'
tables
data = gt_test[]
fields = gt_ftab[].
* первый лист
call method i_spreadsheet->insert_range_dim
exporting
no_flush = 'X'
name = 'tab1'
left = 1
top = 1
rows = 2
columns = 1.
call method i_spreadsheet->GET_ACTIVE_SHEET
importing
SHEETNAME = name_old.
kk = '01'. concatenate n_list kk into name_new.
call method i_spreadsheet->set_sheet_name
exporting
oldname = name_old
newname = name_new.
call method i_spreadsheet->insert_one_table
exporting
data_table = gt_test[]
fields_table = gt_ftab[]
rangename = 'tab1'
wholetable = 'X' " Х - чтобы количество сторок не огранич
no_flush = 'X'.
k_list = k_list - 1. if k_list < 0. k_list = 0. endif.
** 2ой и последующие листы....
do k_list times.
perform full_int_tab.
kk = kk + 1.
concatenate n_list kk into name_new.
call method i_spreadsheet->add_sheet
exporting
no_flush = 'X'
name = name_new.
call function 'DP_GET_FIELDS_FROM_TABLE'
tables
data = gt_test[]
fields = gt_ftab[].
call method i_spreadsheet->insert_range_dim
exporting
no_flush = 'X'
name = 'ta1'
left = 1
top = 1
rows = 2
columns = 1.
call method i_spreadsheet->insert_one_table
exporting
data_table = gt_test[]
fields_table = gt_ftab[]
rangename = 'ta1'
wholetable = 'X' " Х - чтобы количество сторок не огранич
no_flush = 'X'.
enddo.
if save = 'X'.
call method i_document->save_as
exporting
file_name = f_name.
endif.
if close = 'X'.
call method i_document->save_as
exporting
file_name = f_name.
call method i_document->close_document
exporting
do_save = 'X'
no_flush = 'X'.
endif.
WRITE 'Excel document has been created...'.
endform. "excel_processing
Не разобрался только как красиво потом после выгрузки в сам SAP вернуться и там что-то на экран вывести....
