SAPBC470课程中文自学笔记强晟2007年12月17日v1.0E-mail:qiangsheng@gmail.comBlog::FormPrintingWithSAPSmartForms2SAP学习笔记系列(by强晟qiangsheng@gmail.com)前言•从BC460我们知道,SAPSmartForms是替换SAPScript的下一代表单开发技术。相比SAPScript来说,它的设计器更加直观,层级关系更加明显,也应该更便于开发使用。•此外,SAPSmartForms还提供了表格布局的功能,与传统的固定行高布局相比,表格布局在单元格内容过长时能够自动换行,不会象SAPScript中那样把后面的制表位顶走,造成布局混乱。•SAPSmartForms一定还有其他优点,让我们从本教程开始探索吧。强晟2007年12月14日BC470:FormPrintingWithSAPSmartForms3SAP学习笔记系列(by强晟qiangsheng@gmail.com)目录•第一单元:课程概览•第二单元:SAPSmartForms:概览•第三单元:SAP表单制作器的第一步•第四单元:文本、地址和图片•第五单元:表单中的数据•第六单元:表和模版•第七单元:流程控制•第八单元:集成到应用程序•第九单元:SmartStyles•第十单元:字体和条码BC470:FormPrintingWithSAPSmartForms4SAP学习笔记系列(by强晟qiangsheng@gmail.com)第一单元:课程概览•课程目标–熟悉SAPSmartForms并学习图形工具如何互相交互–创建和维护表单–学习表单如何集成到应用程序–使用SmartStyle样式•在本课程结束,你应该可以:–使用SAP表单制作器和它的工具来创建和修改SAPSmartForms–使用样式制作器为表单创建和修改样式–解释表单技术上是如何实现的,以及它们如何集成到应用程序中BC470:FormPrintingWithSAPSmartForms5SAP学习笔记系列(by强晟qiangsheng@gmail.com)第一单元:课程概览•主业务场景–你是飞翔与微笑(fly&smile)旅行社的雇员,你想要发送关于预定航班的发票给客户。–发票表单要一步一步的设置。–业务数据从培训课程所使用的航班数据模型的表中取得。BC470:FormPrintingWithSAPSmartForms6SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•单元概览–关于SAPSmartForms在何处使用和如何工作的概览•单元目标–列举出SAPSmartForms表单打印可以使用的领域–解释SAPSmartForms如何工作和它们怎么跟应用程序集成BC470:FormPrintingWithSAPSmartForms7SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•表单打印–每个公司都经常需要打印大量具有固定设计格式的文档,例如发票或者交货单。为此,它们必须使用它们的业务应用软件。文档可以被输出到打印机、传真机或电子邮件。–从R/34.6C版开始,SAP提供了一个表单处理的新工具——SAPSmartForms。这个工具包含了设计表单的实用程序和定义应用程序接口的实用程序,接口用来把数据输出到表单。BC470:FormPrintingWithSAPSmartForms8SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•应用模块中的SAPSmartForms–除了工具本身,mySAP.com的e-business平台为核心业务处理提供了很多表单。这些表单包括了R/3应用组件销售和分销(SD)、财务会计(FI)和人力资源(HR),还有客户关系管理(CRM)。R/3系统还包含了多个特定国家的表单。–在后续版本中还会从支持包中添加其他的SAPSmartForms表单。–部分SAPSmartForms功能需要R/34.6C版的SP1版以后。因此,建议总是安装昀新的支持包。–提示:本培训课程不会教授任何关于应用模块的知识,只是讲授表单开发的基础知识,让你能在课程结束的时候能够修改表单和应用程序。BC470:FormPrintingWithSAPSmartForms9SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•SAPSmartForms的好处–由于SAPSmartForms直接集成到应用中,在与外部系统交换数据时就不会损失时间。此外,文档可以自动在后台创建,例如,在大量催款函运行的时候,就非常有用。–SAPSmartForms对象会连接到传输系统,这样就可以方便的测试表单并在以后把表单传输到生产系统。–SAPSmartForms可以用在所有SAP支持的平台上。不过,要编辑表单就需要Windows上的图形用户界面SAPgui。–SAPSmartForms提供多语言支持。只需要定义一次表单的布局,然后可以用翻译工具翻译表单中的文本。这确保了你的文档在国际级别上具有一致的设计。BC470:FormPrintingWithSAPSmartForms10SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•SAPSmartForms和SAPScript–跟SAPScript这个原来的表单处理工具相比,SAPSmartForms提供了决定性的优势。包括:•现在调整表单变得非常容易,一方面由于提供的工具功能更强大(例如,可以使用SAPSmartForms的表格绘制器赖方便的创建表格),另一方面因为表单和应用程序之间的接口被重新设计了。•类似从表单中获取附加数据的特定任务不需要再象再SAPScript中那样用特殊的脚本语言命令了,而是可以直接插入一般的ABAP代码。BC470:FormPrintingWithSAPSmartForms11SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•SAPSmartForms和SAPScript(续)–还支持SAPScript表单和样式向SAPSmartForms的移植。还可以把SAPScript样式转换成SmartStyles样式。–SAPScript文本可以直接在SAPSmartForms中使用。–在R/34.6C中,可以决定部分应用模块是想继续使用SAPScript还是使用新的SAPSmartForms。新的表单会使用SAPSmartForms。–SAP会为SAPScript表单继续提供支持和维护。BC470:FormPrintingWithSAPSmartForms12SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•创建文档:简单视图–要允许一个应用程序输出文档,需要下面描述的两个基本步骤,都非常简单:1、数据获取。数据获取步骤是程序的核心组件,可以任意复杂,包含用户交互。2、开始表单处理。在这个步骤,读出的数据被写入表单。•SAPSmartForms工具–维护SAPSmartForms包含下列任务:1、调整表单,主任务。2、调整应用程序。这只在特殊情况下才需要,例如,如果想要修改假脱机设置或者读取要被输出到文档上的附加数据。3、在定制中保存修改。BC470:FormPrintingWithSAPSmartForms13SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•设计SAPSmartForms–使用SAP表单制作器和它的相关工具来创建和调整表单(事务码:SMARTFORMS)。在这里可以定义布局(例如文本或图片的位置和大小),表单元素的处理顺序,应用数据输出到表单的接口。–一旦做出了任何必要调整,必须激活表单。在这个过程中,系统首先检查是否表单包含错误,然后自动保存表单。主要的步骤是生成一个函数模块。一个函数模块是一个ABAP代码的封装片段,它可以理解为子程序。函数模块的接口跟从表单制作器为表单定义的接口完全移植。由于函数模块自动生成,就不需要ABAP知识。BC470:FormPrintingWithSAPSmartForms14SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•定制–对于一些应用,可以确定是想要使用SAPScript还是SAPSmartForms。在定制中可以做出决定。–如果想要使用SAPSmartForms,还必须确定相关应用要使用哪个表单。–原因有二:•一、你不应该直接修改SAP交付的表单,而应该把它复制到你的客户命名空间,并修改那个副本。必须在定制中告诉事务码你自己表单的名字。•二、部分应用允许你在不同的场景选择各种表单。例如,可以在定制中决定对每个催款过程的催款级别(金额和延迟付款的时间)使用不同的表单。–在定制中做出的设置依赖于你所使用的应用。BC470:FormPrintingWithSAPSmartForms15SAP学习笔记系列(by强晟qiangsheng@gmail.com)第二单元:SAPSmartForms:概览•生成文档:复杂视角–这里再次详细解释文档创建过程中的步骤:1、事务在定制中检查要调用哪个程序。这个程序就读取数据。2、事务从定制中知道了所选场景需要使用哪个SAPSmartForm,调用生成的相应函数模块,再触发表单处理过程。接口用读出的数据填充。3、当表单处理开始时,表单处理器(排版器)在后台被自动调用。排版器负责根据存储在表单中的布局信息格式化文本,在运行时为字段填写值,控制换页和把完成的文档放到假脱机中。BC470:FormPrintingWithSAPSmartForms16SAP学习笔记系列(by强晟qiangsheng@gmail.com)第三单元:SAP表单制作器的第一步•单元概览–使用SAP表单制作器创建和维护SAPSmartForms–昀重要的表单元素的概览•单元目标–使用SAP表单制作器–创建、复制和编辑表单–创建页和窗口–解释窗口类型的不同–使用后台图片–设置输出选项–测试表单BC470:FormPrintingWithSAPSmartForms17SAP学习笔记系列(by强晟qiangsheng@gmail.com)第三单元:SAP表单制作器的第一步•初始屏幕:维护表单–要调用SAPSmartForms维护事务的初始屏幕,使用事务码SMARTFORMS,或者选择“工具-表单输出-SmartForms”。然后根据想要编辑的SAPSmartForms对象类型选择一个单选按钮:•表单•样式(参见第九单元——SmartStyles)•文本模块(参见第四单元——文本、地址和图片)–如果想要处理一个表单,选择“表单”单选按钮,然后输入表单的名字。–可以创建、显示和修改表单。系统把你带到图形编辑工具,这个工具叫做SAP表单制作器。BC470:FormPrintingWithSAPSmartForms18SAP学习笔记系列(by强晟qiangsheng@gmail.com)第三单元:SAP表单制作器的第一步•初始屏幕:维护表单(续)–永远不要修改原始的SAP表单,避免在下一次升级中造成你的修改丢失。而应该把原始表单复制到你自己的命名空间(用Y或者Z开头),然后根据需要修改这个表单的副本。–还可以重命名、删除或测试表单。为此,使用现存的按钮或者从“SmartForms”菜单中选择。测试表单需要它已经被激活(在SAP表单制作器中)。–此外,还可以对SAP表单制作器做出设置。可以