메뉴 건너뛰기

SAP 한국 커뮤니티

PDF 변환 소스

sapjoy 2006.12.20 14:46 조회 수 : 5439 추천: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 유용한 System 관리자 Transactions [5] sapjoy 2006.12.20 5572
306 CS_BOM [1] 꿀단지 2011.10.11 5571
305 Screen painter가 열리지 않는 경우, tip [2] darkangel 2008.10.21 5560
304 BAPI_PO_CHANGE 구매오더 변경시에 사용하세요 [7] 노름마치 2007.12.10 5557
303 제가 모은 팁들입니다. [62] file 풍운사랑 2007.09.07 5540
302 <img src=c.gif>Regular Expression Processing in ABAP[추천:e-abap][추천:유리선율] [5] file magicsy69 2010.11.24 5539
301 CALL FUNCTION 'STRING_REPLACE' [1] 꿀단지 2011.10.11 5526
300 BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요. [4] 노름마치 2007.12.10 5504
299 BUFFER RESET 등 [2] sapjoy 2007.01.23 5503
298 인터널 테이블의 사이즈의 의미 [4] 양키(이경환) 2014.02.12 5496
297 System field 정리한 내용이에요 [4] 김창훈 2007.08.21 5487
296 SAP Tips. [7] file 박성민 2007.11.22 5484
295 외부 명령어 등록(EXTERNAL COMMAND) [2] sapjoy 2012.11.02 5478
294 스마트 폼에서 워드를 기본에디터로 설정하는 방법. [8] 혀나미 2008.01.30 5466
» PDF 변환 소스 [5] sapjoy 2006.12.20 5439
292 간단팁1 : 텍스트 금액에서 천단위 구분자 ',' 삭제(개수 상관없음) [12] 윤훈태 2007.10.15 5432
291 영업오더 UserExit [5] 한해동안 2009.08.12 5427
290 REM PROCESS1 밤의화신 2013.09.11 5399
289 T-CODE 별 USER EXTI 찾는 프로그램 [15] sapjoy 2006.12.20 5395
288 ALPHA Conversion [4] sapjoy 2006.12.18 5384