This report takes another report as input, and captures the output of that report. The output is then converted to PDF and saved to a local file. This shows how to use some of the PDF function modules, as well as an easy way to create PDF files. Source Code Listing report zabap_2_pdf. *-- Enhancements: only allow to be run with variant. Then called *-- program will be transparent to users *-- TABLES tables: tsp01. *-- STRUCTURES data: mstr_print_parms like pri_params, mc_valid(1) type c, mi_bytecount type i, mi_length type i, mi_rqident like tsp01-rqident. *-- INTERNAL TABLES data: mtab_pdf like tline occurs 0 with header line, mc_filename like rlgrap-filename. *-- SELECTION SCREEN parameters: p_repid like sy-repid, " Report to execute p_linsz like sy-linsz default 132, " Line size p_paart like sy-paart default 'X_65_132'. " Paper Format start-of-selection. concatenate 'c:\' p_repid '.pdf' into mc_filename. *-- Setup the Print Parmaters call function 'GET_PRINT_PARAMETERS' exporting authority= space copies = '1' cover_page = space data_set = space department = space destination = space expiration = '1' immediately = space in_archive_parameters = space in_parameters = space layout = space mode = space new_list_id = 'X' no_dialog= 'X' user = sy-uname importing out_parameters = mstr_print_parms valid = mc_valid exceptions archive_info_not_found = 1 invalid_print_params = 2 invalid_archive_params = 3 others = 4. *-- Make sure that a printer destination has been set up *-- If this is not done the PDF function module ABENDS if mstr_print_parms-pdest = space. mstr_print_parms-pdest = 'LOCL'. endif. *-- Explicitly set line width, and output format so that *-- the PDF conversion comes out OK mstr_print_parms-linsz = p_linsz. mstr_print_parms-paart = p_paart. submit (p_repid) to sap-spool without spool dynpro spool parameters mstr_print_parms via selection-screen and return. *-- Find out what the spool number is that was just created perform get_spool_number using sy-repid sy-uname changing mi_rqident. *-- Convert Spool to PDF call function 'CONVERT_ABAPSPOOLJOB_2_PDF' exporting src_spoolid= mi_rqident no_dialog = space dst_device = mstr_print_parms-pdest importing pdf_bytecount = mi_bytecount tables pdf = mtab_pdf exceptions err_no_abap_spooljob = 1 err_no_spooljob = 2 err_no_permission = 3 err_conv_not_possible = 4 err_bad_destdevice = 5 user_cancelled = 6 err_spoolerror = 7 err_temseerror = 8 err_btcjob_open_failed = 9 err_btcjob_submit_failed = 10 err_btcjob_close_failed = 11 others = 12. call function 'DOWNLOAD' exporting bin_filesize = mi_bytecount filename = mc_filename filetype = 'BIN' importing act_filename = mc_filename tables data_tab = mtab_pdf. *---------------------------------------------------------------------* * FORM get_spool_number * *---------------------------------------------------------------------* * Get the most recent spool created by user/report * *---------------------------------------------------------------------* * --> F_REPID * * --> F_UNAME * * --> F_RQIDENT * *---------------------------------------------------------------------* form get_spool_number using f_repid f_uname changing f_rqident. data: lc_rq2name like tsp01-rq2name. concatenate f_repid+0(8) f_uname+0(3) into lc_rq2name separated by '_'. select * from tsp01 where rq2name = lc_rq2name order by rqcretime descending. f_rqident = tsp01-rqident. exit. endselect. if sy-subrc ne 0. clear f_rqident. endif. endform." get_spool_number
This man is too old to remember everything in his brain. Right now, he needs a place to write down what he has studied.
2013年1月28日 星期一
SAP : Save Report Output to a PDF File
http://www.erpgenie.com/sap/abap/code/abap51.htm
沒有留言:
張貼留言