把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.

  

posted @ 2019-03-08 10:02  Park_SAP  阅读(928)  评论(0编辑  收藏  举报