메뉴 건너뛰기

SAP 한국 커뮤니티

PDF 변환 소스

sapjoy 2006.12.20 14:46 조회 수 : 5444 추천:36

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
번호 제목 글쓴이 날짜 조회 수
307 SAP Tuning-실무 [11] file 대전희망 2008.06.20 3538
306 workflow - purchase order의 예 [2] file gauguin 2008.06.25 3675
305 <b>[완료]</b>sap netweaver 라이센스 문제... [4] 아밥초짜 2008.06.25 4545
304 튜닝자료.. [16] file 세인 2008.07.11 4767
303 클라이언트간 CTS로 데이타이관 [15] file 노름마치 2008.07.11 11113
302 레포트에서_파일_대화상자_띄우기 [3] file xcomedy 2008.07.19 4478
301 Number_Range_사용법 [13] file xcomedy 2008.07.19 3539
300 <b>[완료]</b>netweaver 설치중 오류log 원인 아시는분 좀 알려주세요 [1] 카즈키 2008.07.19 5264
299 테이블컨트롤에서 F4 값 변경시 다른 필드 값도 변경하기 F4IF_INT_TABLE_VALUE_REQUEST [1] 한해동안 2008.07.24 9431
298 <b>[완료]</b>New abap editor block selection 기능 아시는분... [11] file 숨어푸 2008.08.01 5039
297 Open SQL 문법 정리 [14] SAP질 중 2008.08.20 10861
296 abap email report source [7] file SAP질 중 2008.08.22 4706
295 [re] TABLE, DEIVERY CLASS 정보 테이블 궁그미 2008.09.02 4182
294 ABAP Program Tips v3 [13] file 2008.09.04 5828
293 여러 DATE 변환 TIP [9] file 푸른창공 2008.09.11 5061
292 ALV 버퍼 CLEAR 프로그램 [10] sapjoy 2008.09.25 7386
291 Abap에서 ftp command 를 실행시킬수 있는지 [1] 쿠도스 2008.10.09 4435
290 Screen painter가 열리지 않는 경우, tip [2] darkangel 2008.10.21 5569
289 ABAP FAQs [3] 해처리 2008.10.24 3991
288 Abap Eclipse Editor [5] file franticlion 2008.11.03 6168