抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Adobe Form的第五篇学习笔记。这篇笔记内容比较少,但是很常用。在Form中展示供应商或客户的地址信息。

Adobe-Form打印Address

一、介绍

在原来的Smartform中可以展示供应商/客户的地址信息。在Adobe Form中也可以做到这样的功能。和上一篇笔记中的新建图形变量一样。我们在Interface中传入地址类型、地址编号、人员编号和国家地区等内容之后。将这些数据内容填入Address参数对象中。

再在Form中划定一块区域用于展示这部分内容即可。

二、功能实现

1.Interface

(1)创建Interface

使用事物代码SFP在Adobe Form的界面填入Interface的名称,并点击Create按钮。

1.Interface_创建

(2)填入描述与Package

2.Interface_描述与Package

(3)新建输入参数

在新建好的Interface对象的Import中新建四个变量。变量的内容如下所示。

变量名称 变量类型
IV_ADDRESS_TYPE CHAR1
IV_ADDRNUMBER AD_ADDRNUM
IV_PERSNUMBER AD_PERSNUM
IV_LAND1 LAND1

输入完成之后保存并激活Interface对象。

3.Interface_新建输入参数

2.Adobe Form

(1)创建Form

使用事物代码SFP填入Form的名称,并点击创建按钮。

4.Form_创建

(2)填写描述并绑定Interface

5.Form_描述与绑定

(3)新建Address对象

在Form的Context页签上右键 –> Create –> Address。

6.Form_新建Address变量

(4)编辑Address属性

将从Interface中传入的四个参数填入到Address对象的参数中。请注意一开始需要先修改Address Type的内容,然后回车后才可以在下面的输入框中输入内容。

7.Form_维护Address变量的属性

(5)设置Layout

切换到Form的布局页签中。再转到Data View页签中,然后将Address对象拖动到Form表单中。

8.Form_展示Address内容

删除左侧的ADDRESS文本内容,然后拖动和拉缩地址框。用于多行展示。

9.Form_调整Address的位置和大小

完成之后保存并激活Form。

三、Form测试

1.测试程序

使用下面的程序代码测试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
*======================================================================*
* Selection Screen
*======================================================================*
PARAMETERS :
P_ATYPE TYPE CHAR1, "Address Type
P_ADRNR TYPE AD_ADDRNUM, "Address Number
P_PERNR TYPE AD_PERSNUM, "Personnel Number
P_LAND1 TYPE LAND1. "Country

*======================================================================*
* Data Objects
*======================================================================*

DATA: GV_FM_NAME TYPE RS38L_FNAM, " FM Name
GS_FP_DOCPARAMS TYPE SFPDOCPARAMS,
GS_FP_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.

*======================================================================*
* Constants
*======================================================================*
CONSTANTS : GV_FORM_NAME TYPE FPNAME VALUE 'YADOBE_FORM_DEMO6'.

*======================================================================*
* START of Calling the Form
*======================================================================*
*&---------------------------------------------------------------------*
**&&~~ 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/SM00000204'
EXPORTING
/1BCDWB/DOCPARAMS = GS_FP_DOCPARAMS
IV_ADDRESS_TYPE = P_atype
IV_ADDRNUMBER = P_ADRNR
IV_PERSNUMBER = P_PERNR
IV_LAND1 = P_LAND1
* 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.

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&---- Close the spool job
CALL FUNCTION 'FP_JOB_CLOSE'
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* <error handling>
ENDIF.

2.运行结果

从LFA1或者KNA1表中找一个BP对象,然后将该BP对象的地址编号填入程序的选择屏幕。

10.Form测试_选择屏幕 11.Form测试_预览

Form的结果如下所示。

12.Form测试_Form结果

使用BP或者数据库表ADRC查看地址信息。两者内容一致。

13.Form测试_ADRC结果

四、参考资料

SAP Adobe Interactive Form Tutorial. Part VI. Printing Address in Adobe Form

评论