zoukankan      html  css  js  c++  java
  • ABAP:Smartform生成PDF

    注意:生成PDF时,Smartform中的参数  control_parameters-getotf = 'X'. 必须
     
     
    *&---------------------------------------------------------------------*
    *& REPORT       ZHARPO_010
    *&
    *&---------------------------------------------------------------------*
    *&
    *& Smartform生成PDF,可设置不显示Smartform打印窗口
    *&---------------------------------------------------------------------*
     
    REPORT zharpo_010 NO STANDARD PAGE HEADING.
     
    TABLES rlgrap.
    DATA fm_name TYPE rs38l_fnam.
    DATA control_parameters TYPE ssfctrlop.
    DATA job_output_info    TYPE ssfcrescl.
    DATA job_output_options TYPE ssfcresop.
    DATA itab TYPE TABLE OF bkpf.
    DATA BEGIN OF pdf OCCURS 10.
            INCLUDE STRUCTURE tline.
    DATA END OF pdf.
    DATA len TYPE i.  "PDF文件大小
     
    PARAMETERS filename TYPE rlgrap-filename.
     
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
      PERFORM f4_file_save CHANGING filename.
     
     
    START-OF-SELECTION.
      SELECT bukrs belnr bldat
        UP TO 300 ROWS
        INTO CORRESPONDING FIELDS OF TABLE itab
        FROM bkpf.
     
      control_parameters-getotf    = 'X'.   "此参数必须,否则不会导出PDF而直接显示smartform
      control_parameters-no_close  = ' '.
      control_parameters-no_dialog = 'X'.   "不显示打印对话框
     
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZHARPO_001'
        IMPORTING
          fm_name            = fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
     
      CHECK: sy-subrc = 0.
     
      CALL FUNCTION fm_name
        EXPORTING
          control_parameters = control_parameters
        IMPORTING
          job_output_info    = job_output_info
          job_output_options = job_output_options
        TABLES
          itab2              = itab
        EXCEPTIONS
          formatting_error   = 1
          internal_error     = 2
          send_error         = 3
          user_canceled      = 4
          OTHERS             = 5.
     
      CHECK: sy-subrc = 0.
     
    * convert smartforms to PDF
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          format                = 'PDF'
        IMPORTING
          bin_filesize          = len
        TABLES
          otf                   = job_output_info-otfdata
          lines                 = pdf
        EXCEPTIONS
          err_max_linewidth     = 1
          err_format            = 2
          err_conv_not_possible = 3
          OTHERS                = 4.
     
      CHECK: sy-subrc = 0.
     
      CALL FUNCTION 'WS_DOWNLOAD'
        EXPORTING
          filename            = filename
          filetype            = 'BIN'
          bin_filesize        = len
        TABLES
          data_tab            = pdf
        EXCEPTIONS
          file_open_error     = 1
          file_write_error    = 2
          invalid_filesize    = 3
          invalid_table_width = 4
          invalid_type        = 5
          no_batch            = 6
          unknown_error       = 7
          OTHERS              = 8.
     
      IF sy-subrc <> 0.
        MESSAGE 'ERROR!' TYPE 'E'.
      ENDIF.
    *&---------------------------------------------------------------------*
    *&      Form  F4_FILE_SAVE
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *      <--P_FILENAME  text
    *----------------------------------------------------------------------*
    FORM f4_file_save  CHANGING p_file.
      DATA: l_file TYPE string.
      DATA: l_path TYPE string.
      DATA: l_fullpath TYPE string.
     
      l_file = p_file.
      CALL METHOD cl_gui_frontend_services=>file_save_dialog
        EXPORTING
          default_file_name    = l_file
          initial_directory    = l_path
        CHANGING
          filename             = l_file
          path                 = l_path
          fullpath             = l_fullpath
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          not_supported_by_gui = 3
          OTHERS               = 4.
     
      IF sy-subrc = 0.
        p_file = l_fullpath.
      ELSE.
     
      ENDIF.
    ENDFORM.                    " F4_FILE_OPEN
  • 相关阅读:
    100万并发连接服务器笔记之1M并发连接目标达成
    100万并发连接服务器笔记之测试端就绪
    配置JBoss环境变量
    100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
    JBoss启动项目报错
    eclipse在线安装JBoss Tool过程
    安装JBoss Tool 出错
    eclipse怎么恢复原状
    Java使用foreach遍历集合元素
    Java之Iterator
  • 原文地址:https://www.cnblogs.com/liaojunbo/p/2196250.html
Copyright © 2011-2022 走看看