如何用PDF预览smartform-[SSFCOMP_PDF_PREVIEW]

可以通过函数 SSFCOMP_PDF_PREVIEW以pdf格式预览smartforms输出结果。

例子代码:

REPORT ztest_pdf_output.

*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: gv_formname TYPE tdsfname VALUE 'HRRCF_CS_APPLICANT',
      gv_fm_name  TYPE rs38l_fnam.
DATA: gwa_ssfcompop TYPE ssfcompop,
      gwa_control   TYPE ssfctrlop.
DATA: gv_devtype    TYPE rspoptype.
DATA: gv_job_output TYPE ssfcrescl.
DATA: gt_lines      TYPE TABLE OF tline.
DATA: gv_size       TYPE i.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*Get the function module name using form name
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = gv_formname
    IMPORTING
      fm_name            = gv_fm_name
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*Get Device Type
  CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
    EXPORTING
      i_language             = sy-langu
    IMPORTING
      e_devtype              = gv_devtype
    EXCEPTIONS
      no_language            = 1
      language_not_installed = 2
      no_devtype_found       = 3
      system_error           = 4
      OTHERS                 = 5.

  gwa_ssfcompop-tdprinter = gv_devtype.
*Suppress print dialog
  gwa_control-no_dialog = 'X'.
  gwa_control-getotf = 'X'.

*Trigger the smartform
  CALL FUNCTION gv_fm_name
    EXPORTING
      control_parameters = gwa_control
      output_options     = gwa_ssfcompop
    IMPORTING
      job_output_info    = gv_job_output
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
    EXPORTING
      i_otf                    = gv_job_output-otfdata
    EXCEPTIONS
      convert_otf_to_pdf_error = 1
      cntl_error               = 2
      OTHERS                   = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

运行结果:

以上。

posted @ 2019-08-29 13:21  真的是很难  阅读(531)  评论(0编辑  收藏  举报