马上需要用到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是必填项):

SAP Adobe Form 教程一 简单示例

interface有什么用?

1,在form interface中,你可以指定和应用程序交互的数据(表、结构、工作区)。

2,使用全局定义,定义你的字段、变量等。

3,系统字段包含预定义的数据,比如date。

 

填入描述并保存,

SAP Adobe Form 教程一 简单示例

 

 选择包,保存,

SAP Adobe Form 教程一 简单示例

 检查interface属性,浏览面板的左侧和右侧,点击自动生成的parameter name,

SAP Adobe Form 教程一 简单示例

 

让我们添加自己的parameter name。选择form interface(在左侧)下的import选项,点击创建按钮(在右侧)。增加一个importing parameter IV_TEXT.

SAP Adobe Form 教程一 简单示例

 

在本教程中,IV_TEXT是CHAR30类型,可选。

检查,保存,激活form interface.

SAP Adobe Form 教程一 简单示例

 

创建form

回到事务代码SFP。这次我们需要创建form.

SAP Adobe Form 教程一 简单示例

 

 

SAP Adobe Form 教程一 简单示例

 

 SAP Adobe Form 教程一 简单示例

 

这是form的界面。左侧有interface右侧有context。

SAP Adobe Form 教程一 简单示例

 

 

展开import parameter并拖放需要的变量到context。

SAP Adobe Form 教程一 简单示例

 

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元素的名称/描述。 这会节省时间,并且不需要显式维护属性。

SAP Adobe Form 教程一 简单示例

查看样式标签页,

SAP Adobe Form 教程一 简单示例

 

 

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

SAP Adobe Form 教程一 简单示例

 

 

 SAP Adobe Form 教程一 简单示例

 

 

让我们选择Data View并将我们想要在表单上打印的字段拖放到设计视图。 可以将此文件放置在布局中的任何位置。 对于我们的示例,只有一个元素IV_TEXT。 原因很简单, 我们在context中只创建了一个元素。 你可以添加更多context元素,它们将在此处可用,以传递给布局。 在接下来的内容中,我们将增加需求的复杂性,你将能够看到如何处理多个元素。

SAP Adobe Form 教程一 简单示例

 

 

 可以将标题从 IV_TEXT更改为所需的标题。 例如:Text。 单击元素并更改右侧对象的属性。

检查,保存和激活form。

使用接口对Adobe窗体进行独立测试

SAP Adobe Form 教程一 简单示例

 

 

 SAP Adobe Form 教程一 简单示例

 

 

注意:与smartform一样,adobe form也会在后端生成一个Function Module。

F8运行,

SAP Adobe Form 教程一 简单示例

 

按“打印预览”按钮。检查输入参数是否成功地从接口传递到布局。

 

与SAP Script和Smartform一样,Adobe Form 也需要一个驱动程序。 如果Form单独存在,它们就没有效用。 他们需要一个合作伙伴来完成。 ????让我们来看看这方面。

 

如果你之前曾用过Smartform,你会发现没有任何区别。 我们只需要使用接口参数将数据传递给表单。 并且调试也和Smartform类似。

 1 *&---------------------------------------------------------------------*
 2 *======================================================================*
 3 *                     YRAM_ADOBE_FORM_PROGRAM1                           *
 4 *======================================================================*
 5 * Project     : SAP Adobe Forms Tutorial                               *
 6 * Author      : Ramanjula Naidu DARURU                                 *
 7 * Description : Driver Program to Print Adobe form                     *
 8 *======================================================================*
 9 REPORT yram_adobe_form_program1.
10 
11 TABLES : apb_lpd_otr_keys.
12 
13 **&&~~ Data Objects
14 DATA: gv_fm_name         TYPE rs38l_fnam,      " FM Name
15       gs_fp_docparams    TYPE sfpdocparams,
16       gs_fp_outputparams TYPE sfpoutputparams.
17 
18 CONSTANTS : gv_form_name TYPE fpname VALUE 'YRAM_ADOBE_FORM1'.
19 
20 **&&~~ Selection Screen
21 *
22 PARAMETERS : p_text TYPE char30.
23 *&---------------------------------------------------------------------*
24 **&&~~ Form Processing: Call Form - Open
25 *
26 CALL FUNCTION 'FP_JOB_OPEN'
27   CHANGING
28     ie_outputparams = gs_fp_outputparams
29   EXCEPTIONS
30     cancel          = 1
31     usage_error     = 2
32     system_error    = 3
33     internal_error  = 4
34     OTHERS          = 5.
35 IF sy-subrc <> 0.
36   " Suitable Error Handling
37 ENDIF.
38 *&---------------------------------------------------------------------*
39 **&&~~ Get the Function module name based on Form Name
40 *
41 CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
42   EXPORTING
43     i_name     = gv_form_name
44   IMPORTING
45     e_funcname = gv_fm_name.
46 IF sy-subrc <> 0.
47   " Suitable Error Handling
48 ENDIF.
49 *&---------------------------------------------------------------------*
50 **&&~~ Take the FM name by executing the form - by using Pattern-
51 **&&~~ call that FM and replace the FM Name by gv_fm_name
52 *
53 **&&~~ Call the Generated FM
54 CALL FUNCTION gv_fm_name   "'/1BCDWB/SM00000176'
55   EXPORTING
56     /1bcdwb/docparams = gs_fp_docparams
57     iv_text           = p_text
58 * IMPORTING
59 *   /1BCDWB/FORMOUTPUT       =
60   EXCEPTIONS
61     usage_error       = 1
62     system_error      = 2
63     internal_error    = 3
64     OTHERS            = 4.
65 IF sy-subrc <> 0.
66 * Implement suitable error handling here
67 ENDIF.
68 *&---------------------------------------------------------------------*
69 **&&~~ Form Processing: Call Form - Open
70 *
71 CALL FUNCTION 'FP_JOB_CLOSE'
72 * IMPORTING
73 *   E_RESULT             =
74 * EXCEPTIONS
75 *   USAGE_ERROR          = 1
76 *   SYSTEM_ERROR         = 2
77 *   INTERNAL_ERROR       = 3
78 *   OTHERS               = 4
79   .
80 IF sy-subrc <> 0.
81 * Implement suitable error handling here
82 ENDIF.
83 *&---------------------------------END----------------------------------*
adobe form driver

相关文章: