zoukankan      html  css  js  c++  java
  • 把SmartForm转换成PDF

    摘要:将SmartForm转换为PDF的过程包括3个简单步骤。

    调用智能窗体,然后返回OTF数据。

    使用“转换”功能模块将OTF数据转换为所需格式。

    下载文件

    呈现宏“code”时出错:为参数“lang”指定的值无效

    废话不多说请看代码

    &---------------------------------------------------------------------*
    *& Report  ZTEST_NREDDY_PDF
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    REPORT  ZTEST_NREDDY_PDF.
    * Internal table declaration
    DATA: it_otf      TYPE STANDARD TABLE OF itcoo,
          it_docs     TYPE STANDARD TABLE OF docs,
          it_lines    TYPE STANDARD TABLE OF tline.
    * Declaration of local variables.
    DATA:
          st_job_output_info       TYPE ssfcrescl,
          st_document_output_info  TYPE ssfcrespd,
          st_job_output_options    TYPE ssfcresop,
          st_output_options        TYPE ssfcompop,
          st_control_parameters    TYPE ssfctrlop,
          v_len_in                 TYPE so_obj_len,
          v_language               TYPE sflangu VALUE 'E',
          v_e_devtype              TYPE rspoptype,
          v_bin_filesize           TYPE i,
          v_name                   TYPE string,
          v_path                   TYPE string,
          v_fullpath               TYPE string,
          v_filter                 TYPE string,
          v_uact                   TYPE i,
          v_guiobj                 TYPE REF TO cl_gui_frontend_services,
          v_filename               TYPE string,
          v_fm_name                TYPE rs38l_fnam.
    CONSTANTS c_formname           TYPE tdsfname VALUE 'ZTEST'.
    CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
      EXPORTING
        i_language          = v_language
        i_application       = 'SAPDEFAULT'
      IMPORTING
        e_devtype           = v_e_devtype.
    st_output_options-tdprinter = v_e_devtype.
    st_control_parameters-no_dialog = 'X'.
    st_control_parameters-getotf = 'X'.
    *.................GET SMARTFORM FUNCTION MODULE NAME.................*
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname = c_formname
      IMPORTING
        fm_name  = v_fm_name
      EXCEPTIONS
        no_form  = 1
       no_function_module = 2   
        OTHERS   = 3.
    *...........................CALL SMARTFORM............................*
    CALL FUNCTION v_fm_name
      EXPORTING
        control_parameters = st_control_parameters
        output_options     = st_output_options
      IMPORTING
        document_output_info  = st_document_output_info
        job_output_info       = st_job_output_info
        job_output_options    = st_job_output_options
      EXCEPTIONS
        formatting_error = 1
        internal_error   = 2
        send_error       = 3
        user_canceled    = 4
        OTHERS           = 5.
    *.........................CONVERT TO OTF TO PDF.......................*
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
        IMPORTING
          bin_filesize   = v_bin_filesize
        TABLES
          otf            = st_job_output_info-otfdata
          doctab_archive = it_docs
          lines          = it_lines
        EXCEPTIONS
          err_conv_not_possible  = 1
          err_otf_mc_noendmarker = 2
          OTHERS                            = 3.
     *........................GET THE FILE NAME TO STORE....................*
      CONCATENATE 'smrt' '.pdf' INTO v_name.
      CREATE OBJECT v_guiobj.
      CALL METHOD v_guiobj->file_save_dialog
        EXPORTING
          default_extension  = 'pdf'
          default_file_name  = v_name
          file_filter        = v_filter
        CHANGING
          filename           = v_name
          path               = v_path
          fullpath           = v_fullpath
          user_action        = v_uact.
      IF v_uact = v_guiobj->action_cancel.
        EXIT.
      ENDIF.
    *..................................DOWNLOAD AS FILE....................*
    
      MOVE v_fullpath TO v_filename.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          bin_filesize     = v_bin_filesize
          filename         = v_filename
          filetype         = 'BIN'
        TABLES
          data_tab         = it_lines
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
    

      

  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10494122.html
Copyright © 2011-2022 走看看