原文:Small Fire · SAP Adobe 使用 · ABAP 子专栏 · Small Fire 技术笔记

Adobe Form调用

画好了对应的 Form 格式与数据绑定,就可以在 Report 程序中通过具体代码进行调用了。

SFPOUTPUTPARAMS 参数介绍

nodialog: 是否弹出打印对话框

noprint: 不打印,能预览

nopdf: 不会产生PDF文档

getpdf: 得到PDF文档

dest: 打印终端指定

copies: 打印多少份

reqnew: 新开启一个SPOOL请求

reqfinal: SPOOL请求结束

connection: ADSRFC的

xfp: 外部程序可以调用,得到xml文件,该文件只包含内容,没有layout

程序内容

  • Data define

    * Define Adobe Form Name
    DATA: lv_form_name TYPE FPWBFORMNAME.
    * Define Function Name
    DATA: lv_fm_name TYPE RS381_FNAM.
    * Define Print parameter
    DATA: lwa_fp_params TYPE SFPOUTPUTPARAMS.
    * Define Form Parameters for Form Processing
    DATA: lwa_fp_docparams TYPE SFPDOCPARAMS.
    * Define Result
    DATA: lv_result TYPE SFPJOBOUTPUT.
    DATA: lv_mblnr TYPE mblnr.
    
    START-OF-SELECTION.
    * Fetch the Data and store it in the Internal Table
    lv_mblnr = '30122345234'.
    
  • Open spool job

    * Sets the output parameters and opens the spool job
    lwa_fp_params-connection = 'ADS'.
    CALL FUNCTION 'FP_JOB_OPEN'    "& Form Processing: Call Form"
      CHANGING
        ie_outputparams = lwa_fp_params
      EXCEPTIONS
        cancel          = 1
        usage_error     = 2
        system_error    = 3
        internal_error  = 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.
    
  • Get name

    * Get the name of the generated function module
    lv_form_name = 'ZSFP_FORM'.
    CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'           "& Form Processing Generation"
      EXPORTING
        i_name     = lv_form_name
      IMPORTING
        e_funcname = lv_fm_name.
    IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    
  • Print Control

    * Language and country setting (Chinese)
    lwa_fp_docparams-langu   = 'D'.
    lwa_fp_docparams-country = 'CN'.
    * Call the generated function module
    CALL FUNCTION fm_name
      EXPORTING
        /1bcdwb/docparams     = lwa_fp_docparams
        im_mblnr              = lv_mblnr
    *  IMPORTING
    *   /1BCDWB/FORMOUTPUT    =
      EXCEPTIONS
        usage_error           = 1
        system_error          = 2
        internal_error        = 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.
    
  • Close spool job

    *&---- Close the spool job
    CALL FUNCTION 'FP_JOB_CLOSE'
      IMPORTING
        E_RESULT         = lv_result
      EXCEPTIONS
        usage_error      = 1
        system_error     = 2
        internal_error   = 3
        others           = 4.
    IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.