메뉴 건너뛰기

SAP 한국 커뮤니티

PDF 변환 소스

sapjoy 2006.12.20 14:46 조회 수 : 5453 추천: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
번호 제목 글쓴이 날짜 조회 수
267 Text OBject 텍스트를 팝업화면으로 띄우기 [3] 양키(이경환) 2015.11.25 5322
266 메세지 박스 사용법 공개. [4] 똥뚜 2014.12.19 5356
265 트리 만들기 [6] 푸른밤 2007.07.31 5357
264 sap help desk 전화 번호 [1] sapjoy 2007.03.11 5383
263 납품 UserExit [2] 한해동안 2009.08.12 5384
262 스크린을 생성하여 팝업창을 띄웠는데요~닫기가 안되요 [3] 흐르는강물처럼 2014.10.06 5386
261 속도개선하기....INDEX를 이렇게도 쓰네용~~ [9] 김창훈 2007.08.14 5387
260 ALPHA Conversion [4] sapjoy 2006.12.18 5388
259 T-CODE 별 USER EXTI 찾는 프로그램 [15] sapjoy 2006.12.20 5395
258 REM PROCESS1 밤의화신 2013.09.11 5403
257 영업오더 UserExit [5] 한해동안 2009.08.12 5428
256 간단팁1 : 텍스트 금액에서 천단위 구분자 ',' 삭제(개수 상관없음) [12] 윤훈태 2007.10.15 5436
» PDF 변환 소스 [5] sapjoy 2006.12.20 5453
254 스마트 폼에서 워드를 기본에디터로 설정하는 방법. [8] 혀나미 2008.01.30 5477
253 SAP Tips. [7] file 박성민 2007.11.22 5484
252 외부 명령어 등록(EXTERNAL COMMAND) [2] sapjoy 2012.11.02 5484
251 System field 정리한 내용이에요 [4] 김창훈 2007.08.21 5491
250 BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요. [4] 노름마치 2007.12.10 5507
249 인터널 테이블의 사이즈의 의미 [4] 양키(이경환) 2014.02.12 5508
248 CALL FUNCTION 'STRING_REPLACE' [1] 꿀단지 2011.10.11 5528