SAP ABAP 中的智能表单
SAP Smart Forms 用于在 SAP 系统中创建和维护用于批量打印的表单。作为输出介质,SAP Smart Forms 支持打印机、传真、电子邮件或互联网(通过使用生成的 XML 输出)。
SAP 于 1998 年引入 SmartForms,以克服 SAP 脚本的局限性。SmartForms 比 SAP 脚本更容易开发、维护和传输。
Smart Forms 和 SapScripts 比较
- SmartForms 中可以有多种页面格式,而 SAP 脚本则不能
- SmartForm 可以没有主窗口。
- 可以在 SmartForms 工具中编写例程。
- SmartForms 在激活时会生成一个函数模块。
- SmartForms 中无法创建标签。
Smart Forms 的优势
- 由于完全图形化的用户界面,它们有助于在没有任何编程知识的情况下调整表单
- 激活智能表单时,系统会自动生成函数模块并在运行时执行。
- 要进行任何更改,我们必须使用拖放、剪切和粘贴。这些操作不包括编写代码行或使用脚本语言。
- 我们可以插入静态和动态表格。这包括单个表格单元格中的换行符、触发表格标题和小计的事件以及在输出前对数据进行排序。
- 智能表单允许用户包含图形,这些图形可以作为表单的一部分或作为背景图形显示。在打印时,用户可以根据需要抑制背景图形。
- 使用生成的 XML 输出可以进行网络发布
SAP Smart Form 的架构
Smartforms 指南
让我们在 SAP 系统中了解一下——
- 在事务代码框中输入事务 SMARTFORMS。
- 在下一个屏幕中,输入表单名称并单击创建
下一个屏幕分为三个部分:
导航窗口由节点和子节点组成。它们包含所有属于 SAP 表单的元素(文本、窗口等)
- 维护窗口显示元素的属性
- 表单打印机窗口显示页面的布局
每当我们创建智能表单时,SAP 都会创建/生成一个函数模块。与 SAP 脚本不同,SAP 表单允许您更改语言。
在导航窗口中,您会找到
全局数据声明:此处定义的数据可在整个 Smartform 中用于编码目的。
表单接口:此处定义了将从打印程序传递到 Smartform 的所有数据。
右键单击页面将允许创建新页面、窗口、图形或地址。
打印将根据“下一页”字段进行。
但处理将按照导航窗口中的顺序进行!
对于背景图片和图形,您可以选择黑白或彩色位图图像,并以标准文本的形式存储。您可以从智能表单屏幕绕道,打开表单图形屏幕。事务代码:Se78
Smart Form 窗口中图形的设置 -
Smart Forms 中的窗口
有两种类型的窗口
- 主要
- 次要
要点
- 一个页面中不能有多个主窗口。您可以有多个辅助窗口
- 无论您在辅助窗口中打印什么……它必须是静态的。(如果 PO 中有 20 行,并且存在页面限制,则这些行会延续到主窗口中的下一页。即,在内容的前驱和后继类型中,它们将按顺序打印在主窗口中。这在辅助窗口中是不允许的。
在主窗口中,我们可以添加文本作为介绍,以自定义表单输出。
每个窗口上的输出选项决定了要设置的行大小、宽度、颜色和背景。
Smartforms 提供了输入在中央地址管理中维护的地址编号的选项。地址将直接从 ADRC 表中获取并填充到表单中。
Smartforms 中有两种不同的编辑器,即普通编辑器
和图形编辑器。
此设置可以使用“实用程序”中的“配置编辑器”进行更改。
在表格绘制器中,您可以根据客户要求绘制格式(例如,标题、副标题、项目、小计、总计等)
您可以使用表格布局来确定
- 行数和单元格数
- 每行的高度
- 每个单元格的宽度
- 表格在窗口中的对齐方式
表格显示了将在表格中使用的不同行类型。行类型定义了每个单元格的大小和每行中的单元格数量。
Smart Forms 编程流程
创建 SAP Smart Form 模板时,用户使用 Smart Form Builder 创建表单布局,定义所需字段、条件和特殊编程指令。
表单设计完成后,需要激活表单才能进行测试或由打印程序访问。激活表单会启动一个函数模块的生成,该模块处理表单的所有处理。
此函数模块与应用程序程序/打印程序交互,为指定设备创建用户定义的输出介质中的输出。
在智能表单的情况下,我们使用 2 个函数模块来处理智能表单。对于第一个函数模块,我们将智能表单的名称作为导入参数传递。然后,它返回实际调用智能表单的动态生成的函数模块的名称。
智能表单名称可以传递给函数模块 – ‘SSF_FUNCTION_MODULE_NAME’
这将返回所引用智能表单的函数模块名称。
打印程序将调用 FM ‘SSF_FUNCTION_MODULE_NAME’ 以在运行时获取函数模块名称。然后它将调用由此获得的函数模块来执行智能表单。
模板
当您知道输出的确切大小或输出为固定格式时,可以使用模板。
例如:税表/支票/航空公司表格/火车票:所有这些都使用模板。
表格和模板之间的主要区别在于,表格的高度是动态变化的。我们称模板中的行为“行”。
智能样式包含
- 包含智能样式默认值的页眉数据
- 段落格式,包括缩进和间距、字体属性、制表符以及轮廓和编号
- 字符格式,包括效果(上标、下标)、条形码和字体属性
- 段落或字符格式的颜色和下划线
您可以使用事务“smartforms”/“smartstyles”来创建智能样式。
本教程到此为止