form. output_excel.
loop at invoiceheader.
loop at invoicedetail2 where vbeln = invoiceheader-vbelnf.
move-corresponding invoicedetail2 to invoicedetail3.
append invoicedetail3.
endloop.
describe table invoicedetail3 lines r.
sheet = 'P1'.
perform. openxls.
perform. headerxls using invoiceheader-vbelnf.
p = r / 15.
do_r = ceil( p ).
from = to = do_location = 0.
i = 1.
j = do_r - 1.
if j > 0.
do j times.
call method of h_excel 'ROWS' = row
exporting
#1 = '1:45'.
call method of row 'AutoFit'.
call method of row 'COPY' no flush.
call method of row 'INSERT' no flush.
call method of row 'AutoFit'.
enddo.
endif.
do do_r times.
from = to + 1.
to = i * 15.
do_location = ( i - 1 ) * 45 + 22.
perform. itemxls using from to do_location invoiceheader-vbelnf.
i = i + 1.
perform. total_amount using do_location invoiceheader-vbelnf.
enddo.
clear:p,r,do_r,from,to,do_location,i,j.
free: invoicedetail3[].
endloop.
free: invoicedetail[],invoicedetail2[], invoiceheader[]
,invoicedetail3[],invoicedetail1[].
free object h_excel.
free object h_mapl.
free object h_zl.
free object h_f.
free object h_sheet.
free object row.
endform. " output_EXCEL
*&---------------------------------------------------------------------*
*& Form CALL_SMARTFORMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* *----------------------------------------------------------------------*
form. call_smartforms.
*call smartforms
*************************
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZFSD_PCE_0009'
* VARIANT = ' '
* DIRECT_CALL = ' '
importing
fm_name = fm_name
* EXCEPTIONS
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
* OTHERS = 3
.
if sy-subrc eq 0.
w_ctrlop-langu = 'M'.
call function fm_name
exporting
control_parameters = w_ctrlop
output_options = w_compop
user_settings = 'X'
importing
job_output_info = w_return
tables
itab_header = invoiceheader
itab_detail = invoicedetail2
exceptions
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4.
if sy-subrc eq 0.
clear:pwoconpnent[],pwoconpnent[],invoiceheader,invoiceheader[],
invoicedetail,invoicedetail[],invoicedetail2[].
endif.
* w_ctrlop-getotf = 'X'.
* w_ctrlop-no_dialog = 'X'.
* CALL FUNCTION fm_name
* EXPORTING
* control_parameters = w_ctrlop
* output_options = w_compop
* user_settings = 'X'
* IMPORTING
* job_output_info = w_return
* TABLES
* itab_header = invoiceheader
* itab_detail = invoicedetail
* EXCEPTIONS
* formatting_error = 1
* internal_error = 2
* send_error = 3
* user_canceled = 4.
* CALL FUNCTION 'CONVERT_OTF_2_PDF'
* IMPORTING
* bin_filesize = len
* TABLES
* otf = w_return-otfdata[]
* doctab_archive = l_docs[]
* lines = l_lines[]
* EXCEPTIONS
* err_conv_not_possible = 1
* err_otf_mc_noendmarker = 2
* OTHERS = 3.
*
* CALL METHOD cl_gui_frontend_services=>gui_download
* EXPORTING
* bin_filesize = len
* filename = 'D:\InvoiceNumber.pdf'
* filetype = 'BIN'
* CHANGING
* data_tab = l_lines[] "i_objbin[]
* EXCEPTIONS
* OTHERS = 1
* .
endif.
*************************
endform. " CALL_SMARTFORMS
*&---------------------------------------------------------------------*
*& Form openxls
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* *----------------------------------------------------------------------*
form. openxls.
create object h_excel 'EXCEL.APPLICATION'.
set property of h_excel 'Visible' = 1.
call method of h_excel 'Workbooks' = h_mapl.
call method of h_mapl 'OPEN'
exporting
#1 = filename.
if sy-subrc <> 0 .
message i000 with filename.
call method of h_excel 'QUIT'.
free object h_excel.
free object h_mapl.
free object h_zl.
free object h_f.
free object h_sheet.
exit .
endif .
call method of h_excel 'WORKSHEETS' = h_sheet
exporting
#1 = sheet .
endform. " openxls
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666225/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666225/