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.
    

      

  • 相关阅读:
    机器学习Python包
    Linux网卡的相关配置总结
    [转]Ajax跨域请求
    [转]git在eclipse中的配置
    java代码运行linux shell操作
    虚拟机NAT模式无法上网问题的解决办法
    [转]关于网络通信,byte[]和String的转换问题
    ARP协议工作流程
    pycharm常用快捷键总结
    数据挖掘主要解决的四类问题
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10494122.html
Copyright © 2011-2022 走看看