SAP Adobe Form 教程一 簡單示例


馬上需要用到adobe form,這里搬運一篇教程學習下。

 

英文原文:SAP Adobe Interactive Form Tutorial. Part I. First Adobe Form

本文鏈接:https://www.cnblogs.com/hhelibeb/p/15493324.html

准備

前提:系統中有Adobe life cycle designer,並且在服務器中配置過。

事務代碼:SFP。可以用這個關鍵詞來記住它:Smart Form PDF🙂。

創建interface

輸入一個interface並創建(interface對於adobe form是必填項):

interface有什么用?

1,在form interface中,你可以指定和應用程序交互的數據(表、結構、工作區)。

2,使用全局定義,定義你的字段、變量等。

3,系統字段包含預定義的數據,比如date。

 

填入描述並保存,

 

 選擇包,保存,

 檢查interface屬性,瀏覽面板的左側和右側,點擊自動生成的parameter name,

 

讓我們添加自己的parameter name。選擇form interface(在左側)下的import選項,點擊創建按鈕(在右側)。增加一個importing parameter IV_TEXT.

 

在本教程中,IV_TEXT是CHAR30類型,可選。

檢查,保存,激活form interface.

 

創建form

回到事務代碼SFP。這次我們需要創建form.

 

 

 

 

 

這是form的界面。左側有interface右側有context。

 

 

展開import parameter並拖放需要的變量到context。

 

Form builder中的context的意義是什么?

在context(也稱為form context)中,指定將哪些數據從interface復制到form。還可以將此數據作為節點包含在層次結構中。在此層次結構中,還可以通過指定處理節點的條件來決定form邏輯。

Form Builder中的context函數是將interface綁定到布局的鏈接。可以從現有interface構造form context。

如果上面的解釋讓你覺得很模糊,那就先忘掉它。只需將context記作全局區域的數據聲明,可能就像TOP Include程序一樣。

簡而言之,如果你希望參數,即內表、工作區或變量等從程序傳遞到interface,然后傳遞到form,那么你需要在表單的context中定義該內表、工作區或變量 。

form context中定義的任何內容都可以在要顯示或操作的form中使用。 如果在form Interface中定義了一個變量但沒有在context中創建它,那么該Interface變量將不會在form中可用。

如果你不喜歡快捷方式(拖放)或希望上下文參數名稱與表單界面中的名稱不同,則需要自己在上下文元素的屬性中指定數據字段。 例如,如果你想創建一個上下文P_TEXT但想用 IV_TEXT綁定它,那么數據字段應該是IV_TEXT,如下所示。

提示:從interface拖放到context,然后更改context元素的名稱/描述。 這會節省時間,並且不需要顯式維護屬性。

查看樣式標簽頁,

 

 

左側有Hierarchy, Tab Order, Data View等,右側有Design, Mater和PDF Preview options.

 

 

 

 

 

讓我們選擇Data View並將我們想要在表單上打印的字段拖放到設計視圖。 可以將此文件放置在布局中的任何位置。 對於我們的示例,只有一個元素IV_TEXT。 原因很簡單, 我們在context中只創建了一個元素。 你可以添加更多context元素,它們將在此處可用,以傳遞給布局。 在接下來的內容中,我們將增加需求的復雜性,你將能夠看到如何處理多個元素。

 

 

 可以將標題從 IV_TEXT更改為所需的標題。 例如:Text。 單擊元素並更改右側對象的屬性。

檢查,保存和激活form。

使用接口對Adobe窗體進行獨立測試

 

 

 

 

 

注意:與smartform一樣,adobe form也會在后端生成一個Function Module。

F8運行,

 

按“打印預覽”按鈕。檢查輸入參數是否成功地從接口傳遞到布局。

 

與SAP Script和Smartform一樣,Adobe Form 也需要一個驅動程序。 如果Form單獨存在,它們就沒有效用。 他們需要一個合作伙伴來完成。 🙂讓我們來看看這方面。

 

如果你之前曾用過Smartform,你會發現沒有任何區別。 我們只需要使用接口參數將數據傳遞給表單。 並且調試也和Smartform類似。

*&---------------------------------------------------------------------*
*======================================================================*
*                     YRAM_ADOBE_FORM_PROGRAM1                           *
*======================================================================*
* Project     : SAP Adobe Forms Tutorial                               *
* Author      : Ramanjula Naidu DARURU                                 *
* Description : Driver Program to Print Adobe form                     *
*======================================================================*
REPORT yram_adobe_form_program1.

TABLES : apb_lpd_otr_keys.

**&&~~ Data Objects
DATA: gv_fm_name         TYPE rs38l_fnam,      " FM Name
      gs_fp_docparams    TYPE sfpdocparams,
      gs_fp_outputparams TYPE sfpoutputparams.

CONSTANTS : gv_form_name TYPE fpname VALUE 'YRAM_ADOBE_FORM1'.

**&&~~ Selection Screen
*
PARAMETERS : p_text TYPE char30.
*&---------------------------------------------------------------------*
**&&~~ Form Processing: Call Form - Open
*
CALL FUNCTION 'FP_JOB_OPEN'
  CHANGING
    ie_outputparams = gs_fp_outputparams
  EXCEPTIONS
    cancel          = 1
    usage_error     = 2
    system_error    = 3
    internal_error  = 4
    OTHERS          = 5.
IF sy-subrc <> 0.
  " Suitable Error Handling
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Get the Function module name based on Form Name
*
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
    i_name     = gv_form_name
  IMPORTING
    e_funcname = gv_fm_name.
IF sy-subrc <> 0.
  " Suitable Error Handling
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Take the FM name by executing the form - by using Pattern-
**&&~~ call that FM and replace the FM Name by gv_fm_name
*
**&&~~ Call the Generated FM
CALL FUNCTION gv_fm_name   "'/1BCDWB/SM00000176'
  EXPORTING
    /1bcdwb/docparams = gs_fp_docparams
    iv_text           = p_text
* IMPORTING
*   /1BCDWB/FORMOUTPUT       =
  EXCEPTIONS
    usage_error       = 1
    system_error      = 2
    internal_error    = 3
    OTHERS            = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Form Processing: Call Form - Open
*
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
*   E_RESULT             =
* EXCEPTIONS
*   USAGE_ERROR          = 1
*   SYSTEM_ERROR         = 2
*   INTERNAL_ERROR       = 3
*   OTHERS               = 4
  .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*&---------------------------------END----------------------------------*

 

讓我們通過SE38使用驅動程序測試輸出:

 

 執行驅動程序並選擇打印預覽選項。輸入字段在表單布局中正確顯示,

希望你喜歡這篇簡單的文章。 這只是Adobe Form的基礎知識。 在下一篇文章(Adobe  Form中的Form)中,我們將學習單詞,然后開始使用這些ABC來構建句子🙂。 

配置

讀者提問:在哪里配置驅動程序和關聯的Adobe Form名稱,從而事務中觸發?
答案:t-code NACE==>選擇應用程序。 例如:V3 ==> 按“Output type”按鈕 ==> 選擇輸出類型。 例如:RD00 ==> 按“Processing Routines” ==> 在這里我們可以配置Medium / Program / Form Routine / Form / PDF-SmartForm Form。

在PDF-Smartform表單下,我們可以配置 adobe form。

在PP模塊中——我們可以在事務OPK8中進行配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM