메뉴 건너뛰기

SAP 한국 커뮤니티

report to PDF file

아밥뽀 2014.03.18 19:20 조회 수 : 4706

data l_spoolno type sy-spono.

data l_xstring type xstring.

data l_solix type solix_tab.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'PDF'.

  CALL FUNCTION 'Z_CONVERT_TO_PDF1'

    EXPORTING

      i_repid    = sy-repid

      i_linsz    = sy-linsz

      i_download = space

    IMPORTING

      e_spono    = l_spoolno

      e_xstring  = l_xstring

      e_solix    = l_solix.

ENDCASE.

  CALL FUNCTION 'Z_CONVERT_TO_PDF1'

    EXPORTING

     i_filename = 'C:test.pdf'

      i_repid    = sy-repid

      i_linsz    = 300

      i_download = 'X'

    IMPORTING

      e_spono    = l_spoolno

      e_xstring  = l_xstring

      e_solix    = l_solix.

 

Below is the Code for it..

FUNCTION z_convert_to_pdf1.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_FILENAME) TYPE  STRING DEFAULT 'C:temptest.pdf'
*"     REFERENCE(I_PAART) TYPE  SYPAART DEFAULT 'X_65_132'
*"     REFERENCE(I_REPID) TYPE  SYREPID
*"     REFERENCE(I_LINSZ) TYPE  SYLINSZ
*"     REFERENCE(I_DOWNLOAD) TYPE  CHAR1 DEFAULT 'X'
*"  EXPORTING
*"     REFERENCE(E_SPONO) TYPE  RSPOID
*"     REFERENCE(E_XSTRING) TYPE  XSTRING
*"     REFERENCE(E_SOLIX) TYPE  SOLIX_TAB
*----------------------------------------------------------------------

  DATA:    l_params TYPE pri_params,
           l_valid TYPE string,
           w_spool_nr LIKE tsp01-rqident.
  DATA:    l_repid TYPE sy-repid.
  DATA:    l_acttime    TYPE rslgtime,
           l_timestamp  TYPE timestamp.
  DATA:    l_range_acttime TYPE RANGE OF rslgtime WITH HEADER LINE.

*Internal table for Selection Screen
  DATA: BEGIN OF it_rsparams OCCURS 0.
          INCLUDE STRUCTURE rsparams.
  DATA: END OF it_rsparams.

  DATA: lt_pdf TYPE TABLE OF tline,
        ls_pdf TYPE tline.
  DATA:
   pdf_bytecount                  TYPE i,
   pdf_spoolid                    TYPE tsp01-rqident,
   otf_pagecount                  TYPE i,
   btc_jobname                    TYPE tbtcjob-jobname,
   btc_jobcount                   TYPE tbtcjob-jobcount,
   bin_file                       TYPE xstring.

  l_repid = i_repid.

*TO GET PRINT PARAMETERS
  CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      immediately            = space
      no_dialog              = 'X'
    IMPORTING
      out_parameters         = l_params
      valid                  = l_valid
    EXCEPTIONS
      archive_info_not_found = 1
      invalid_print_params   = 2
      invalid_archive_params = 3
      OTHERS                 = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  IF l_valid NE 'X'.
    STOP.
  ENDIF.

* Store the current selection screen details
  CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
      curr_report     = l_repid
    TABLES
      selection_table = it_rsparams.

  IF i_linsz IS NOT INITIAL.
    l_params-linsz = i_linsz.
  ENDIF.
  IF i_paart IS NOT INITIAL.
    l_params-paart = i_paart.
  ENDIF.

*Create System Log Time Before spool
  CLEAR l_acttime.
  CONVERT DATE sy-datum TIME sy-uzeit
  INTO TIME STAMP l_timestamp TIME ZONE sy-zonlo.
  l_acttime(14) = l_timestamp.
  CONCATENATE l_acttime '00' INTO l_acttime.
  l_range_acttime-sign   = 'I'.
  l_range_acttime-option = 'BT'.
  l_range_acttime-low    = l_acttime.

*Submit Report
  SUBMIT (l_repid) WITH SELECTION-TABLE it_rsparams
                    TO SAP-SPOOL
                    SPOOL PARAMETERS l_params
                    WITHOUT SPOOL DYNPRO
                    AND RETURN.

*Create System Log Time Right after spool
  CLEAR l_acttime.
  CONVERT DATE sy-datum TIME sy-uzeit
  INTO TIME STAMP l_timestamp TIME ZONE sy-zonlo.
  l_acttime(14) = l_timestamp.
  CONCATENATE l_acttime '00' INTO l_acttime.
  l_range_acttime-high    = l_acttime.
  APPEND l_range_acttime.

*SELECT THE RECENTLY CREATED SPOOL
  SELECT MAX( rqident ) INTO w_spool_nr FROM tsp01
         WHERE rqclient  = sy-mandt
         AND   rq0name   = l_params-prdsn
         AND   rq1name   = l_params-pdest
         AND   rq2name   = l_params-plist
         AND   rqowner   = l_params-prrec
         AND   rqcretime IN  l_range_acttime.

  e_spono = w_spool_nr.

*Get Xstring PDF
  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
      src_spoolid          = w_spool_nr
      no_dialog            = space
      pdf_destination      = 'X'
      get_size_from_format = space
    IMPORTING
      pdf_bytecount        = pdf_bytecount
      pdf_spoolid          = pdf_spoolid
      btc_jobname          = btc_jobname
      btc_jobcount         = btc_jobcount
      bin_file             = e_xstring
    TABLES
      pdf                  = lt_pdf.
*Get tab PDF
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer     = e_xstring
    TABLES
      binary_tab = e_solix.

*Download Directly to the Location
  IF i_download EQ 'X'.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        bin_filesize = pdf_bytecount
        filename     = i_filename
        filetype     = 'BIN'
      TABLES
        data_tab     = e_solix.
  ENDIF.

ENDFUNCTION.

번호 제목 글쓴이 날짜 조회 수
487 ALV 동적 필드 구성 [4] 꿀홍삼 2015.02.06 9546
486 Open SQL에서 SUM 사용시 유의사항. [11] 나침반친구 2007.06.07 9537
485 SUBQUERY 사용예 입니다. [1] 노름마치 2007.11.20 9536
484 간단한 계산공식은 Macro를 사용하자 [5] 양키 2011.04.14 9532
483 Field Catalog 가져오지 못하는문제(REUSE_ALV_FIELDCATALOG_MERGE) [3] 양키 2013.08.16 9481
482 sap 메뉴에서 표준 매뉴 전환 [1] selection장 2013.09.13 9445
481 FIELD-SYMBOL설명 및 예제 프로그램 [17] Delight 2008.04.30 9426
480 <img src=d.gif>Source Activation 시 [READ_REPORT_LINE_TOO_LONG] dump 발생하면?[추천:e-abap] [5] JYG 2011.02.11 9416
479 테이블컨트롤에서 F4 값 변경시 다른 필드 값도 변경하기 F4IF_INT_TABLE_VALUE_REQUEST [1] 한해동안 2008.07.24 9406
478 표준편차구하는 로직 윤사모 2011.03.23 9369
477 BAPI_MATERIAL_SAVEDATA 자재마스터 생성시에 사용하세요. [1] 노름마치 2007.12.10 9238
476 SAP 단순하지만, 모르면 정말 불편 한 기능들 [22] SARA 2007.03.27 9214
475 TYPE-1 프로그램에서 실행버튼 없애기 [1] 아밥뽀 2013.09.23 9109
474 엑셀에서 '-' 부호 앞으로 옮기기 [18] file MasFI 2013.02.08 8984
473 SELECT-OPTIONS 문법 [5] sapjoy 2006.12.28 8977
472 ALV 내용 변경 방법. [8] 초보보초보 2007.02.07 8928
471 SAP GUI 730 ALV Grid 느림 현상(해결방법) [3] Dave 2013.09.27 8882
470 효과적인 ABAP/4 프로그램 작성기법 [24] 열공아밥 2009.12.20 8878
469 유용한 t-code 모음들 [26] 아이디빵 2008.04.24 8794
468 where 조건을 상황에따라 바꿔볼까? [8] 양키 2011.04.14 8738