第9章- 智能表单Smartforms总结
SmartForms最全开发手册---最全
引言目的及范围本文档主要介绍Smarform使用方法。
可适用于ABAP开发人员,分析人员使用。
--最全参考资料《SAP程序设计》文档结构文档的各章节介绍的内容如下:∙概述整个form的属性及用法∙完整案例∙附注Smartform应用及概述Smarform主要是SAP针对商业处理中固定格外文件批量打印的一种工具。
主要分为Form、Style、Textmodule三个组成部分,此三个组成部分都可以被单独创建和重复利用(T-CODE:SMARTFORMS),下面将分别讲解三种工具的使用方法。
上传背景图片输入TCODE:SE78:选择FormGraphicsStoredonDocumentServer GraphicsGeneralGraphicsBMAPBitmapImages点击按钮导入图片图片属性,导入成功FORM创建创建界面输入T-CODE:SMARTFORMS,进入以下界面,输入Form名称:ZHZP_SM_TEST,点击Create进入编辑窗口:此窗口分为三个区域:左边区域:包括全部变量,和树形结构的节点导航。
当点击相应的节点时,中间区域将会显示该节点的属性,中间区域:维护各个节点的属性等右边区域:图形化窗口绘制,可以手动调节节点分布位置,实现节点在页面的布局点击保存并选择PACKAGE和CR节点全局设置包含表格属性,表格接口,全局定义Field按钮控制Form中参数和系统变量的显示节点介绍Form是由不同类型的节点组成。
一个Form包含了一个或者多个Page,第一个Page是Form 执行的的开始(当创建Form时,系统默认创建这个Page),下面将讲解每个节点的功能及其包含的子节点,输入区域此两种节点创建FORM时,系统默认创建一个PAGE,和一个Mainwindow不包含下级节点的节点列表输出逻辑空控制节点其他节点所有节点共同的选项创建模板:T emplate节点用于创建文档中的静态表格,即在打印前已经确认了行数。
第9章- 智能表单Smartforms分析
11
Form(表格)
定义Smartform的全局设置
12
Form(表格)
设定全局设置——表格接口
用于设置通过Call Function调用SmartForm时的参数。
导入——对应Call Function Exporting 参数,用户也可以增加参数。 导出——对应Call Function Importing 参数,用户也可以增加参数。 表——对应Call Function Table 参数,用户也可以增加参数,参考 打印必须是已存在的数据库表或结构。 例外——对应Call Function Exceptions参数,即出错捕捉参数。
Define the interfaces of your Form. Create the Form Pages, Windows, Addresses, Graphics. Create the elements within the Windows Define the Flow control for printing pages
概述- smartforms的优点
高效的生成和维护表格 图形化界面接口,无需过多编程知识 多语言能力 表格中的样式和字体可重用 可将输入转换为HTML格式输出,为表格提 供网络应用的支持
Smartforms的组件
Smart Form
generated Printer
Application Program
13
Form(表格)
设定全局设置——全局定义
全局数据:可以定义在Smartform内部使用的全局变量, 参考打印内容既可是系统提供的I、C等类型,也可以是已 存在的数据库表、结构,还可以是Smartform中定义的类 型。注:此处Type assignment的值必须选择Type或 Type ref to(对象分配),用LIKE有时会报错。
智能表单的应用
市场推广
市场调查与数据分析
智能表单可用于收集市场调查数据,分析客户需求和 市场趋势,为企业的市场推广策略提供支持。
活动报名与信息收集
通过智能表单,企业可以快速收集活动参与者信息, 简化报名流程。
营销活动管理
智能表单可以用于管理营销活动流程,跟踪活动效果, 提高营销活动的效率和效果。
客户服务
客户信息收集
技术实现
数据存储与处理通常使用关系型数据库或非关系型数据库进行存储,数据处理和分析可以 使用数据处理框架如Hadoop、Spark等。
人工智能技术应用
定义
人工智能技术应用是指将人工智能技术应用于智能表单中,提升表 单的智能化水平。
功能
人工智能技术应用包括自然语言处理、机器学习、深度学习等技术, 能够实现智能提示、智能填写、智能推荐等功能。
02
03
技术实现
数据验证通常使用正则表达式、规则 引擎等技术实现,也可以结合前端和 后端技术进行实现。
数据存储与处理
定义
数据存储与处理是指将用户输入的数据进行存储和管理,并进行相应的数据处理和分析。
功能
数据存储与处理包括数据库操作、数据清洗、数据转换、报表生成等功能,能够满足企业 级的数据管理需求。
特点
智能表单具有高效、准确、自动化的 特点,能够大幅提高信息收集和处理 的效率,减少人工干预和错误率。
智能表单的重要性
提高工作效率
01
智能表单能够快速准确地处理大量表单数据,减轻人工处理的
负担,提高工作效率。
提升数据质量
02
智能表单具备数据校验功能,能够自动识别和纠正错误数据,
提高数据的质量。
促进数字化转型
智能表单的应用
Smart Form
SMARTFORMS里面代码如何跟踪
这里设个断点,运行程序
得到系统生成FUNCTION NAME, 然后你去SE37里面查看这个FUCTION
选择查找
填入你在SMARTFORMS里面的代码
选择In main program
双击
这里设置断点返回,运行你的程序
双击全局参数,字段符号
这里填写程序里面 可能用到字段符号
双击%PAGE1新页,输出选项设置打印格式
双击主窗口,设置主窗口大小
是否需要边框
右键单击MAIN窗口,选择创建,流逻辑,循环(用于创建一个循环,LOOP 表头)
双击这个LOOP,选择数据
循环头内表
右键单击LOOP创建,表(用于输出数据)
双击这个TABLE,点击数据
循环明细内表
设置内表输出条件
选择TABLE里面的表
点击细节进入下图
这里设置段落格式,大体上和sapscript类似, 但一行的各个段落之和要等于你TABLE宽度
画线
选择TABLE里面表头,点右键创建表行(表头一般用来输出一些头内表里面数据或者是静态数据)
这里选择样式,是在 SMARTSTYLES里面定义字 体的属性和对齐方式
选择这里
右键点击空白地方,创建窗口
关于模板的使用(主要用于静态文本的输出,或者使用LOOP+模板的形式输出表体..)
点击这里这里创建段落格式
设置位置
设置每个段落
设置段落行高度
可以选择模板右键,创建,文本
这里是设置对应的段落 格式位置
关于添加图形,点击右键,创建图形
选择相应图片
关于创建判断语句
Form Overview
首先去SE11创建结构
SMARTFORM
SMARTFORMSMARTFORM是在SAPscript的基础之上产生的一种新的FORM制作方式,有一个图形界面。
主要特点:1.循环和判断在FORM中控制。
2.常常需要先在SE11中定义结构/表。
从SAPscript转为SMARTFORMTcode:SMARTFORMS,输入目标form的名称,在菜单中选择实用程序->迁徙SAPscript 表格创建SMARTFORM事务码:SMARTFORMS,选择新建表格表格属性:form的一般属性和输出选项。
包括描述、纸张大小等信息。
此处一般不做更改表格接口:当做好了一个SMARTFORM以后,如果想从ABAP程序中调用这个FORM的话,就会用到这些接口来传递参数。
要注意接口表的定义要适用于程序中的处理和SMARTFORM 的输出。
这些就是程序调用SMARTFORM时用到的参数。
除了灰色的系统定义好的参数外,可以自己添加参数单击这个按钮后,屏幕左下角会显示form接口。
SMARTFORM在接口中定义表时,需要type或like一个数据对象。
如果系统中没有合适的对象,我们可以在数据字典(SE11)中自定义一个结构,来作为表的类型。
选择“数据类型”选择“Structure”输入结构的描述,并定义结构的内容。
Component type可以参照透明表的相应定义。
对货币/数量字段,需要在“货币/数量字段”中定义单位。
定义完后激活就可以在SMARTFORM 中使用。
定义完结构以后,就可以在SMARTFORM中使用。
这里参考表中的参考字段就是前面FKIMG的单位这里ITAB的结构就和刚才定义的结构一致ITAB的结构全局定义:定义一些全局的数据,还有FIELD SYMBOLS 、初始化等。
例子里定义了两个工作区页:类似SAPscript中的页设置,设定下一页、页码格式、纸张方向、背景图片等。
窗口:设置窗口的类型、位置。
窗口类型设置窗口的位置、大小、底纹。
类似SAPscript 的位置设置在条件选项卡可以设定什么情况下输出该窗口。
智能表单系统概述文件
智能表单系统概述文件智能表单系统概述文件一、前言随着软件应用在各行各业的深入,很多企业的业务越来越依赖IT 系统。
但是传统意义上的软件开发,费时费力,而且风险高,即使是通用的软件也有适用性和扩展性的问题,这极大制约了企业的软件应用。
智能表单系统是一个支持快速开发的软件平台,它能提供简单快捷的软件定制开发,应用它的企业用户可以在无任何编程经验的情况下,随时随意的定制任何复杂的业务模块,支持复杂灵活的业务需求。
二、系统功能简介1.系统模块拓扑图:智能表单系统表单设计器工作流设计器统计报表系统应用支持2.系统功能模块描述:功能模块描述表单设计器表单设计方式为所见即所得方式,提供用户自定义样式设计。
表单存储为XML文件。
可迁移性强。
还可对已保存的表单进行修改,且不影响已经收集的数据。
工作流程设计器采用国际标准的流程引擎。
用户可自定义工作流,通过节点和连线来自定义流程。
可配置流程与动态表单关联。
用户还可根据业务需求的变化来修改流程。
系统应用支持系统提供和集成流程引擎、表单引擎、分析引擎等,来支持完整的业务过程应用。
可驱动业务流程扭转,为用户提供代办任务,为用户分配权限保证过程的安全、业务查询统计应用和移动设备终端使用支持。
报表统计用户可通过选择数据库数据来进行一定函数的统计,提供可视化数据拖拽,并以报表的形式和多图形化来展示,以便数据的分析。
三、系统特色1.控件权限控制。
可以让多用户填写一张表单,以及控制整张表单的填写权限。
2.采用Flex4.5新技术。
摒弃传统表单设计器外观的呆板与粗糙,提供精美的可视化界面,通过使用flex实现可拖拽设计,实现控件自适应网格的布局,及高操作性的仿Excel表格控件,以及Flex强大的表现力与图形化能力以及运算能力,为用户提供视觉上与操作上的享受。
3.表单版本控制:用户可对已设计的表单进行版本控制,针对控件启用禁用,并将禁用的控件集存储在单独可拖拽模块中,使设计或修改过程中通过拖拽模式启用和禁用控件。
sap--smartform
SMARTFORM简易手册
一个简单的SMARTFORM的程序逻辑无外是取数和打印两部分,看下面的示例
注意:上面的内表声明是直接参照了SE11里面能看到的表,也可以参照自己定义的结构,这个内表里面的值是最终需要传输到SMARTFORM里面的内表。
下面看一下SMARTFORMS里面的具体的情况。
首先我们需要定义一些基本的变量。
然后我们就要来进行布局的一些操作,
大的布局确定好了后,我们就需要对里面添加数据了
在各个窗口下,我们都可以使用逻辑语言,也可以适当加上一些自己的代码
SMARTFORM中最终输出的值,都是要以文本的形式显示出来的
以上只是阐述了基本的数值输出与大的定位,下面说一下文本上面的字体怎么来调整。
在SMARTFORM的里面上看到第二个选项样式。
下面,就是我们应用格式的时候了,看到先前看到的这个图片
最后,激活,按F8,系统就会自动生成一个FUNCTION,
现在,一个简单的SMARTFORMS就写好了。
ABAP SMARTFORMS
本课目标概念及应用Smart Forms 是SAP 新一代报表开发工具,直观的图形设计界面可以使开发人员方便1-1.Smart forms概念及应用快速的完成报表开发,同时它也向下兼容SAPScript 报表.除了应用于ABAP标准的报表输出,Smartforms在WEB开发中,可以输出到HTML中.对于每个应用模块的打印,SAP都带有标准的Smart forms,我们可以通过配置或在标准报表的基础上做二次开发以此来满足实际需表的基础上做二次开发,以此来满足实际需求.1-2.Smart Forms开发示例在实际开发中,往往标准报表需要改更某些字段或完全开发一个全新的Forms,在做开发之前我们需要清楚用户需要打印的数据,打印格式,纸张大小等信息,在此基础上进步分析如何组织需要的数要清楚用户需要打印的数据打印格式纸张大小等信息在此基础上进一步分析如何组织需要的数据并完成开发.1-2-1.创建Smart formT-CODE:SMARTFORMSPATH: Tools -> Form Printout -> SMARTFORMS -Smart Forms在Form栏位输入表单的名称,点击按钮.功能按钮区导航树维护屏幕表单绘制区通过一个树开结构来组织Form上列印的元素在这个区域编辑左边树形导航结构中元素的属性可以对Page上的Window区域排版1-2-2. 表单Global Data设定如左图的树形结构,我们可以分两个部分来理解:表单的全局数据设定:表单的全数据设定1,Form Attributes:主要是这个窗体的一般属性和输出选择。
2,Form Interface:它主要用来描述这个Smart Form的接口属性,如Import、Export、Tables、Exception。
当完成一个SmartForm以后,可通过这些参数来实现同调用的程序数据沟通.以后可通过这些参数来实现同调用的程序数据沟通3,Global Definitions:主要用来定义Form内的一些全局的数据1-2-2-1. Form Attributes设定,在表单属性中要设定张大小,常用标准1,在表单属性中主要设定纸张大小,通常可选用标准的纸张,如需要通过针式打印机列印一些特殊的套打纸张,可以自已定义实际纸张大小的类型.2,设定每英显示的字符或线3,格式化样式设定.4,输出类型设定输出类型设定1-2-2-2. Form Interface1222F I t fForm Interface中设定调用程序同Form传递数据的接口,本例中设定在Import中调用程序需传递两个内表(SO表头及项目行)在Forms的Interface包括以下内容:1,Import:调用程序传输的参数2,Export:返回参数3,Tables:返回内表3Tables:返回内表4,Exceptions:返回异常灰色部分为系统变量(如对打印机参数设定)在此可定义调用程序传到Smart form的自定义参数(可以是内表,工作区或单个值),在本例中我们传输相关的销售单的表头及行项目内表如上例:如何建立在传递数据时用到的表格类型ZT_VABP/ZT_VBAK如上例如何建立在传递数据时用到的表格类型ZT VABP/ZT VBAKT‐CODE:SE11选择Data Type并输入表类型名称选择Table Type选择”Table Type”在此输入Data Structure或表名在声明表格类型时,我们有两种方法:1,在Interface中传递(SAP标准,本例中采用)2,可不用在SE11中定义表格类型,也不用在Interface中定义传输的数据结构(此种方法优于第一种,但代码量相对输大)1-2-2-3. 全局数据定义(Global Definitions)1223全局数据定义(Gl b l D fi iti)在这个部分定义的工作区,内表,过程或字段都是应用在本张Form中,定义全局数据定全局参数用到的数据类型定义字段符号初始化Forms,可以在此对全局参数做一些计算在Form中定义特殊的过程定义Form中用到的货币或数量字段定义Forms用到的工作区本例中只定义两个工作区,用来实现在扫描内表时,通过工作区将数据填放到Smart form中的各个窗体元素中.13建立P 和Wi d1-3.建立Page和Window.右图区域内显示了Smartform 中相关的显示元素图形编辑器标尺同SAPScript 一样,一个Form 可以Pages 图形模式下,可方便的对Window调整大小有多个Pages,每个Page 最多只能有一个Main Window1-4.更改Page的属性.14更改P的属性重要属性:设定当前Page的下页,通常同Form中有设定当前Page的下一页通常同一Form中有多个Page要交互列印时用到此设定列印的方向,及列印模式如果要在页面中加水印效果或在Page的背景中放置图片在此设定参数景中放置图片在此设定参数.1-5.添加Window15添加Wi d(1)(2)() (1).建立两个Window,分别用来填写标题和报表头.(1)建立两个Window分别用来填写标题和报表头(2).可以在图形设计器中改变大小及位置Window的属性:General Attributes:设定Window的类型Output Options:设定Window样式,位置/大小,颜色等Conditions:输出的或换页的条件在Window中放入Text元素,以输出动态或静态的文本在Wi d中放入T t元素以输出动态或静态的文本1),在文本框中输入要显示的静态文本或动态文本(可以工作区字段或变量)同时可以设定显示的格式,在Header Window中放入个Template在Header Window中放入一个Template每个Template作为一个模板,在上面可以方便定义出复杂的显示格式,如:显示表格,文本,图象等资料.编辑模板显示格式(1)(2)()(3)(4)如左图,在模板上输出4们栏位的文本加上标签应是8个单元的文本,加上标签应是8个单元(1),模板上每个单元的外框样式(2),点选Details,可以编辑模板上每个单元格的大小如果有几行的格式完全一样,可以将此行设成相同格式的名称(3),模板编辑,点击可以方便的绘制需要的格式.在模板中放入文本并和单元格关联.在模板中建立文本输出比较重要的参数是Output Options中Line/Column设定,用来定位文本显示在模板上哪个单元格中文本的显示内容点击出现如下可引用的变量标签文本值拖1-7.在Main Window建立一个Loop循环17在M i Wi d建立个L循环在Smart forms中Loop和Table元素的数据属性相近,都有Data/Calculations/Conditions从内表中提取数据并放入工作区中,这些工作区中的数所可放入下层的Loop或Table条件中,也可做为最终的文本输出指定提取内表数据时的条件Field Name:工作区字段名Comparison Value:筛选的值(可以是实际值或变量)指定从内表提取出来的数据排序方式在Calculations中可以指定某些字段在扫描内表时计算总计或平均数并将结果放到一个变量1-8.在Loop循环下放置一个Table在Data部分扫描SO项目行资料,同时条件值来自外层Loop循环的SO#,这样可以做每个SO表头和项目行数据对应.Table属性部分:可能通过画笔绘制出格式复杂不同的表格,并将这些Line分配给Table的Header,Item或Footer等元素.213选择刚刚绘制行类型,系统将自动建立每个单元.每个单元为每个单元格分配显示文本调试结果调试结果为Body指派行类型如下图运行结果:在每单元下建立一个文本,并将对应的字段放到文本中有时我们需要将字符前面的0去掉,或将数字转换成字符串并去空.在第一个Cell中加入程序行.这样每次循环时都会运行到这里在Global Form Routines中加入转换过程,这样中的任何位使用Smartform中的任何位置可以使用它调整后的运行结果加入换页命令在Command的GeneralAttributes中指定换页后的下一Page在一些实际开发中我们需要在Form中放在些实际开发中,我们需要在Form中放入公司Logo或直接提取供应商或客户地址从变量传入地址编号放入图象名称123测试结果,在实际编程应用中可用到这些技术点4直接提取文本内容(如:本例直接在Smartform中提取SO表头资料的长文本)SO的表头长文本SMART FORM设定测试结果110如何在P 中调用S tf1-10.如何在Program中调用Smartform CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTING 'ZEXP 1'CALL FUNCTION FORM_NAMEEXPORTING page total page totalformname ='ZEXP_1'IMPORTING fm_name =FORM_NAME EXCEPTIONS no_form =1no_function_module =2page_total =page_total report_type =report_type control_parameters =ctrl_paramoutput_options =output_options user_settings =spaceVBAK =ITAB_VBAK[]12OTHERS =3.VBAP =ITAB_VBAP[].1),通过SSF_FUNTION_MODULE_NAME 调用smartform,会返回一个Funtion Module 名称.2),根据返回的FM 名称,执行打印.相关参数说明:如上图2,VBAK 和VBAP 是在Smartform 的interface 中定义传输打印数据的接口.Control_parameters 和output_options :定义印选项控制的参数设定,如下图中界面中的参数可以通过这两个参数来设定.2-1.配置模块列印参数21配置模块列印参数开实际应用中,我们需要配置模块中标准的列印输出参数,例如更改标准的程或自动列印等,本节以配SO列印为例:T‐CODE:NACE(也可在IMG中单独对每个模块配置)Development‐> SAP Business Workflow ‐> Definition tools ‐> Events ‐> Event creation ‐> NACE ‐Message Control定义输出条件定义应用程序输出处理过程定义输出的类型定义程序访问的条件应用程序区域2-2.定义输出类型22定义输出类型|2-3.添加处理程序23添加处理程序如左图:1,输入程序名称:可以是自定义也可以从标准程序复制以从标准程序复制2,指定程序中处理打印的过程3,输入报表名称并选择报表类型输入报表名称并选择报表类型为Smartform2-4.定义伙伴功能2-5.添加打印处理过程点选NAST主界面上的”Procedures”,添加刚刚新建的输出类型.2-6.输入列印条件记录26输入列印条件记录2-7.测试123测试结果小结通过本课的学习,期望能清楚以下内容:1,Smart form工作模式.1Smart2,Smart form全局参数定义.3,Smart form Text,Address,Inculde Text, Graphic 的用法.4,Smart form Loop,Table的用法.5,Smart form Window,Template的用法.6,如何将上述3,4,5结何开发出复杂的Form.Invoice DateInvoice#练习:请跟据前面所学的内容开发一个列印发票的FormDELIVERY ADRESS INVOICING ADRESS DELIVERY ADRESSINVOICING ADRESSName Name Adress 1Adress 1Adress 2Adress 2Adress 3Adresse 3P t l C d Postal Code Postal Code Postal CodeCountryCityCountryCity Invoice#:xxxxxxxxxxTax Code:Page:NITEM #PRODUCTION DESC InvoicedQuantityUNIT NET PRICE TAX VALUE DISCOUNT NET VALUEDUE DATEPAYMENTTERM INVOICE DATE DISCOUNT AMOUNT TAX AMOUNT PAYMENT AMOUNT。
ABAP学习之—SMARTFORM
PERFORM FRM_GETDATA."输出数据的查询 " 在句柄中加上服务器当前时间作为句柄名称,防止多人同时使用该程序,导致句 柄名称相同 CONCATENATE 'ZFSTEST001HD' SY-UZEIT INTO HEADERNAME. CONCATENATE 'ZFSTEST001IT' SY-UZEIT INTO ITEMSNAME. "存输出表单表头数据的内表 SAVEBUFFER GIT_OUTPUT_H HEADERNAME. "保存输出数据明细的内表,与表头数据有关联字段 SAVEBUFFER GIT_OUTPUT_D ITEMSNAME. PERFORM FRM_OUTPUT_TO_SMARTFORM. "调用完毕以后,删除数据 CLEARBUFFER HEADERNAME. CLEARBUFFER ITEMSNAME. END-OF-SELECTION.
1)有固定的格式,对其中的字数和行数都有严 格的规定。 例如:发票凭证的打印 2)只用按照一定的格式即可。
例如:工资单信息的打印
在这里,我们主要判断是使用模板,还是 表来实现主数据的循环显示。
ABAP学习之—SMARTFORM
4
2.如何选择SmartForm与程序的接口方式 在SAP的ABAP编程中,一般开发过程都是在
"SMARTFORMS DATA:OPTIONS TYPE SSFCOMPOP. DATA:FM_NAME TYPE RS38L_FNAM,
S_OUTPUT_OPTIONS TYPE SSFCOMPOP, CONTROL TYPE SSFCTRLOP. S_OUTPUT_OPTIONS-TDDEST = 'LP01'. "SMARTFORMS初始化定义 CONTROL-NO_DIALOG = ''. CONTROL-PREVIEW = ''. CONTROL-NO_OPEN = 'X'. CONTROL-NO_CLOSE = 'X'.
SAPSmartorms
SAP SmartForms1. 简介SAP SmartForms是SAP系统中用于创立和打印业务文档的工具。
它提供了一种简单且直观的方式来设计和生成表单,例如发票、订单确认和交货单等。
SmartForms允许用户使用图形和文本来自定义表单的外观,并且可以与SAP系统的数据源进行集成,自动填充表单的内容。
2. 特性2.1. 可视化设计工具SAP SmartForms提供了一个可视化的设计工具,允许用户通过拖拽和放置的方式来创立表单。
这个工具非常直观和易于使用,使得用户无需具备编程知识也能够轻松创立自定义的表单。
2.2. 丰富的内容类型支持SmartForms支持多种内容类型,包括文本、图像、表格、条形码和二维码等。
用户可以根据自己的需求选择适宜的内容类型,并自由地调整它们的大小和位置。
2.3. 数据源集成SmartForms可以与SAP系统的数据源进行集成,自动填充表单的内容。
用户可以根据需要选择所需的数据源,并将其与表单中的字段进行映射。
这样,在打印表单时,SmartForms会自动从数据源中获取数据,并填充到表单的相应位置。
2.4. 条件逻辑SmartForms支持条件逻辑,允许用户根据特定条件显示或隐藏表单的某些局部。
这样可以根据不同情况动态地调整表单的内容。
2.5. 多语言支持SmartForms支持多语言,在设计表单时可以为不同语言创立对应的文本和标签。
这样,当打印表单时,系统会根据用户的语言设置自动选择相应的文本和标签。
3. 使用步骤3.1. 创立一个新表单在SAP系统中,翻开SmartForms的设计界面。
选择。
Smartforms
Smartforms 2009.07.14一.Smartforms简单了解SmartForms是ABAP设计单据打印的工具,设计过程由两部分组成:1、在SmartForms设计单据的样式、输入输出数据接口;2、编程调用设计单据、输出数据,实现打印输出。
Smartforms背景图片在制造公司内部的各类单据时需要公司的LOGO,这就需要上传图片。
输入TCODE:SE78Smartforms 中打印设备与打印字体的设置设备类型格式类型页格式 TCODE: SPAD字体系统条形码 TCODE: SE73Smartforms 样式文本模块设计TCODE: SMARTFORMSSmartForms 帮助程序中内表数据传递到smartforms里的几种方法:1、接口内表,优点简单直观。
缺点,要在SE11建立两个type,一个是structrure type,一个是table type。
2、用memory id或簇数据库。
优点,不用SE11,可分别运行取数和打印过程,缺点两边都要定义相同的内表。
在程序中调用 Smartforms二.背景图片上传TCODE: SE78选择 Form Graphics Stored on Document Server Graphics General Graphics BMAP Bitmap Images点击按钮导入图片图片属性如下:图片上传成功三.打印设备与打印字体(1)系统条形码 TCODE: SE73选择‘系统条形码’Change点击图标创建选择‘NEW’确认后如下:选择 BARCODE 类型选择‘NORMAL’确认输入 BARCODE 宽度与高度确认保存‘YES’创建一个请求号确认后ZCODTEST 条码创建成功四.SMARTFORMS设计TCODE: SMARTFORMS(1)先建Domain、Data element 根据打印需求创建StructureTCODE: SE11创建完毕后输入TCODE:smartforms 创建表格点击‘创建’进入输入描述、页格式、字符每英寸、行每英寸等数据双击‘表格接口’输入相关的导出、导入、表格、例外等参数,类似于 FUNCTION, 如下图:在全局定义中可以设置全局数据、类型等参数和程序双击‘%PAGE1新页面’选择背景图片选择上传的图片‘ZPICTURE1’然后输入分辨率及输出模式以及位置,在表格绘制器中显示图片,如下图:点击‘%PAGE1新页面’右键创建页眉页脚窗口,如下图所示:在表格绘制器中设计页眉、页脚窗口位置.在‘页眉’下创建 '模板',在‘模板’下新建‘文本1’, 在‘文本1’中输入文本.为‘文本1’创建样式,TCODE: smartforms 如下图:创建后如图:先创建字符格式:右键‘字符格式’->创建节点输入‘S1’, 在字体中设置如下属性在‘段落格式’创建节点‘K1’在表头数据设置如下参数:然后检查并激活样式 ZSMT_YS1 ,样式创建完毕.返回 smartforms表格在‘文本1’输出选项中添加样式:双击'主窗口'后,右键创建->表点击‘细节’设计表设置表宽度、对齐方式、高度以及行类型.LINE 分成 4列:4cm ,4cm , 4cm, 4cm.4列的宽度和必须与表宽度一致。
Smartforms培训
Wa_head :work area for itab_head
C 將需要输出的值抓取完毕后存放在3个內表中 D 调用函数
a 调用smart form,产生function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
说明:1.ZFFI_MSE_0007_02 为smart form的名称 2.l_fun 为产生的function module的程式 名称
Q&A
ENDIF.
b 调用2.4.1产生的function module,將程式中定义的3个內表 值传送給smart form.
CALL FUNCTION l_fun EXPORTING
*
* *
ARCHIVE_INDEX
ARCHIVE_INDEX_TAB ARCHIVE_PARAMETERS control_parameters
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING FORMNAME * VARIANT = 'ZFFI_MSE_0007_02' = ' '
*
DIRECT_CALL
= ' '
IMPORTING FM_NAME * EXCEPTIONS = l_fun
* EXCEPTIONS * * * * * FORMATTING_ERROR INTERNAL_ERROR SEND_ERROR USER_CANCELED OTHERS . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * ENDIF. WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. = 1 = 2 = 3 = 4 = 5
SMARTFORMS
关于SMARTFORMS的教程——表格绘制1、格式绘制器的操作一、绘制格式2 代码的编写二、关于代码一、绘制格式1 输入事务码SMARTFORMS 进入开发环境,创建一个SMARTFORMS程序2 就可以创建你所要做的SMARTFORMS 在表格中创建你要创建的SMARTFORMS的名称3 点击回车进入SMARTFORMS编辑模式4 右击PAGE选择创建窗口,创建一个TOP窗口用来显示标题及图片,就出现以下画面5 右击TOP 窗口选择创建-----图形,在TOP窗口上添加一个图形,接着创建一个FOOT窗口,用来显示页数6 在默认的MAIN窗口中,右击选择创建文本7 在MAIN窗口中创建一个工资表,如:8 点击细节进入下一个画面,用来显示表格的详细信息(如:单元格的宽度,表的宽度)9 双击TABLE1 返回上一个画面,对表的操作10 表创建好了以后,就接着创建一个表行,右击创建表行姓名性别职位工资入职日期12 以上均为绘制表格。
下边是往里面填充数据,首先是定义一个表格接口13 表格接口定义好以后,要定义一个全局变量,主要用于循环内表,读数据14 双击TABLE1选择数据字段15 为了把数据写入表,必须用参数传递,所以要定义一些变量,选择TABLE-----主要区域右击创建表行16 行类型创建好以后,就传递参数,首先为表行的各个列创建一个文本(方法雷同)17 文本创建好以后,就进行赋值,选择(一般属性)其发法如下以上五个字段的赋值方法相同。
18 为了让表的字段都显示在中间,选择输出选项进行样式的设置效果如下:所有的列的字段取值的方法都一样19 对SALARY 这个字段进行汇总,首先在全局字段中,设置一个全局变量,选择计算这个字段)出现以下画面21 计算结束,取值,其方法同上面各个列的方法一样,其不同之处就是,要在表TABLE1的脚标创建一个文本22 设置页数,选择窗口FOOT,右击选择创建文本,在一般属性里面设置参数.以上步骤就是SMARTFORMS的制作,点击保存,激活即可,然后按F8进入下个画面继续F8,直到可以打印预览,完成后的效果如下二、关于代码1.输入 SE38 ,进入 ABAP/4 编辑器2.输入程序名称,点击创建,显示输入信息框,输入相应的信息。
SmartForms——基础知识
SmartForms——基础知识转载:Smart FormsSmart Forms是在SAPScript的基础上产⽣的⼀种新的表单制作⽅式,它完全兼容SAPScript。
但Smart Forms 更独⽴,且使⽤起来更加⽅便,可以创建FORM的同时,⽣成该表单对应的功能块(Function Module),从⽽为FORM和ABAP程序的交互提供参数接⼝在中⽂环境下创建的Form,⼀般只在中⽂环境下打开来编辑,在英⽂环境中中⽂⽂本节点可能显⽰不出事务码:SMARTFORMSForm:表单版式Style:⽂本样式Text Module:⽂本模块⼀个FORM往往是由页⾯(PAGES)、输出区域(OUTPUT AREAS即WINDOWS)、地址栏(ADRESS)、图形(GRAPHICS,⽐如公司LOGO)、数据(DATA)、以及⽂本内容(TEXT)组成⽂本模块Text Module:⽂本模块,主要⽤于设置⼀段固定的⽂本信息,如报表头名称,或者是报表附加条款说明等信息。
像下⾯这此使⽤:节点元素FORM中元素的输出顺序由Pages and Windows中的后继节点结构和顺序来决定,导航树中的第⼀个页节点是FORM处理的起始页,该节点在FORM创建过程中被⾃动创建。
节点类型决定了节点可能的处理过程,如打印节点内容(⽂本、地址、图⽚等)、执⾏节点中的语句或根据规则执⾏当前节点的后继循环节点。
导航树中的所有节点,按照从上到下的顺序依次进⾏处理(包括“Pages and Windows”节点之间)除开“Pages and Windows”外,其它所有节点都是可以加上执⾏条件属性设置的,也就是说,只要满⾜设置条件时,该节点及⼦节点才被处理Page节点每⼀个Form⾄少包含⼀个页(Page)节点Page节点为“Pages and Windows”的⼦节点,如果某个Page内容超出⼀页,则会将其他内容输出到Pages节点的Next Page属性所指定页⾯,即多出⼀页的内容会产⽣分页,⼀般Next Page分页默认为⾃⼰,因为⼀般报表的主体内容会使⽤分页,并且这些分页排版相同,所以此种Page的Next Page不会设置成其他Page。
十三、Smartform
⼗三、Smartform事务代码:smartforms操作步骤及解释:1.通过事务代码进⼊smartform界⾯:输⼊smartform并回车2.smartform界⾯主要有表单、样式和⽂本模块三项:(1)表单:主要是绘制表单的表格内容等,相当于在word中绘制⼀个表格;(2)样式:主要是通过设置字体的⼤⼩、⾏⾼、对齐⽅式等,便于在表单中使⽤;(3)⽂本模块:主要⽤于设置固定的内容,⽐如标题之类的,标题也可以在表单中创建使⽤。
3.创建样式:输⼊样式名称,点击“创建”(样式名修改为YTEST,步骤⼀样,不作重新截图);点击“段落格式”,选择“创建节点”,输⼊名称,点击“√”;填写“描述”、选择“对齐⽅式”、“缩进”和“间距”根据实际需求填写;点击“字体”,根据实际需求选择字体族、字体⼤⼩和样式,是否需要下划线、颜⾊;(在底部“预览”,上图和下图对⽐,可以直观地看到字体的⼤⼩和样式的变化)点击“表头数据”,选择标准段落(标准段落也就是在表单中字体未选择指定样式的情况下,按默认样式);最后点击保存并激活,以上“样式”创建完毕。
2.创建表单:点击“表单”,输⼊表单名称,点击“创建”;点击“表格属性”,输⼊描述,选择“输⼊选项”,在样式中引⼊刚刚创建好的样式YTEST;点击“全局定义”,可以根据需要在此处定义变量;点击“%PAGE1新页⾯”,点击“输出选项”,根据实际打印需求选择打印纸张的格式:肖像格式(竖向)和横向格式;点击“MAIN主窗⼝”,点击“输出选项”,根据实际需求填写边距和宽⾼点击“MAIN主窗⼝“,右键,选择“创建”,选择“模板”;点击“%TEMPLATE1新建模板1”,绘制表格的⽅式有以下两种:(1)点击“画笔按钮”,直接可在⽩⾊画布中进⾏绘制;(2)点击“细节”,⽤填写数据的⽅式绘制(详情往下看);通过这些按钮给表格添加上边框;点击“细节”,可以看到刚刚绘制的表格形成了⼀个单元格的宽⾼数据,也可以根据实际需求进⾏修改和填写;注意:单元格的宽⾼总和不能⼤于模板和窗⼝的宽⾼,否则会报错;点击“%TEMPLATE1主窗⼝”,右键,选择“创建”,选择“⽂本”;点击“%TEXT1新⽂本1”,在空⽩处填写内容,在Styles中选择刚刚在样式中创建的样式P1添加变量:点击“插⼊字段”,输⼊变量名称(注意:变量需要⽤&包起来);点击“输出选项”,填写输出的⾏和列(对应于模板中绘制的表格);点击”激活“,再点击执⾏;再点击“执⾏”;打印预览:补充说明:⼀个页⾯可以包含可多个窗⼝,⼀个模板可包含⽂本;表格接⼝、变量的定义及使⽤之后补充。
SMARTFORM_有图
SMARTFORM知识一、SMARTFORM的特征SMARTFORM是在SAPScript的基础之上产生的一种新的FORM制作方式,它完全兼容SAPScript。
在做SMARTFORM的过程中基本上不需要多少编程知识,它有一个图形界面来帮助我们完成工作。
这个图形界面由三个部分组成,它们分别是:Form Painter、PC Editer、Table Painter。
启动SMARTFORM设计的事务代码:SMARTFORMS,进入的界面如下:输入你要创建的SMARTFORM的名称,然后点击“创建”,进入下面的Form Builder界面:注:上面另外两个选项Style、Text module分别是用来定义FORM的样式和文本模块的。
上面的屏幕分为三个部分:Form Painter:主要用来设计SMARTFORM输出页面的格式,可以在页面上包含窗口和图(最右边)形,还可以指定它们在页面上的位置以及它们的大小等。
在图片左上角的工具栏有一个按钮可以用来显示和隐藏这个窗口。
PC Editer:主要用来初始化文本(TEXT)和域(FIELD),它包含的功能主要有以下几个方(中间)面,1)输入、删除、选择、Navigating in the SAP Form Builder:它主要用来显示一个SMARTFORM的层次结构。
(最左边)当你在层次结构中选择了一个NODE(结点)后,在上面截屏的中间部分会显示这个NODE的MAINTENANCE屏幕。
二、在做FORM前要了解的几个概念1、FORM的结构:一个FORM往往是由页面(PAGES)、输出区域(OUTPUT AREAS即WINDOWS)、地址栏(ADRESS)、图形(GRAPHICS,比如公司LOGO)、数据(DATA)、以及文本内容(TEXT)组成。
2、主窗体和子窗体:(MAIN WINDOWSAND SUBWINDOWS)这是页面上两个不同的输出区域,用来输出数据,文本等内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Form(表格)
定义Smartform的全局设置
表格属性:设置表格的样式,页面的格式(即页面大小), 输出格式等。 表格接口:它用来描述这个Smart Form的接口属性,比 如IMPORT、EXPORT、TABLES、EXCEPTION。如果 从ABAP程序中调用这个FORM的话,就会用到这些接口 来传递参数。 全局定义:主要用来定义一些全局数据,还有FIELD SYMBOLS,初始化等。
Define the interfaces of your Form. Create the Form Pages, Windows, Addresses, Graphics. Create the elements within the Windows Define the Flow control for printing pages
Describe your Form 定义表格
Create your Form using the Smartform Form Builder. Within the Smartform Form Builder, the following can be done:
ABAP Function Module
9
Form(表格)
上面的屏幕分为三个部分:
树形导航工具(左边):主要用来显示SmartForm的层 次结构。当你在层次结构中选择了一个节点后,在上面截 屏的中间部分会显示这个节点的维护屏幕。 维护屏幕(中间):根据当前树状结构中选择的不同节点 类型,会出现各种标签,对应相关的选项卡,在这些选项 卡中可以进行该节点相关属性的设计。 窗口绘制器(右边):主要用来设计SmartForm输出页 面的格式,可以在页面上包含窗口和图形,还可以指定它 们在页面上的位置以及它们的大小等。在图片左上角的工 具栏有一个按钮 可以用来显示和隐藏这个窗口。
Application Program ABAP Function Module
Pass the Application Data to the Form 填充数据到表格
Execute the generated Function Module of the Smartforms within the ABAP Program (created in the first step), and passing the prepared data into its parameters.
概述- smartforms的优点
高效的生成和维护表格 图形化界面接口,无需过多编程知识 多语言能力 表格中的样式和字体可重用 可将输入转换为HTML格式输出,为表格提 供网络应用的支持
Smartforms的组件
Smart Form
generated Printer
Application Program
ABAP Function Module
Database
Data Retrieval
Form Definition
Output
Smartforms表格生成步骤
Application Program Database
Retrieve Application Data 抽取应用数据
Create an ABAP Program and do the following processing:
概述
SmartForm完全兼容SAPScript,有图形界面 来辅助实现。下面是一个简单SmartForm输出结果:
7
Form(表格)
使用事务码: Smartforms进入 SAP 智能表初始 画面, 如右图所示:
8
Form(表格)
输入名称Z001,点击“创建”按钮,进入 下面的Form Builder界面:
13
Form(表格)
设定全局设置——全局定义
全局数据:可以定义在Smartform内部使用的全局变量, 参考打印内容既可是系统提供的I、C等类型,也可以是已 存在的数据库表、结构,还可以是Smartform中定义的类 型。注:此处Type assignment的值必须选择Type或 Type ref to(对象分配),用LIKE有时会报错。
Prepare the Data needed for the Form Processing, these includes Data manipulations; and Data Retrieval from Database which are then stored into an internal table or structures.
第 9章 智能表单Smartforms
目录
概述
Form(表格)
Smart Styles(样式)
Text Module(文本模块) 在程序中调用SmartForms 检查与测试Form
2
概述
Smartforms 是SAP表单处理的一种工具 生成的文档可以是打印机输出,传真或电 子邮件格式 Smartforms 通过SAP Web Application Services (WAS)可以生成HTML格式
类型:定义内部使用的类型。此处均使用TYPES语句定义。 字段符号:定义Smartform内部使用的FIELD-SYMBOL变量。此处 定义的变量必须以“<”开始,以“>”结束,如:“field-symbols: <dbtable> type any. ”。 初始化:定义初始化处理内容,相当于定义一个Subroutine,输入 参数即Using参数,输出参数即Changing参数。 货币/数量字段:定义货币/数量类型的全局变量的参考字段。
11
Form(表格)
定义Smartform的全局设置
12
Form(表格)
ห้องสมุดไป่ตู้
设定全局设置——表格接口
用于设置通过Call Function调用SmartForm时的参数。
导入——对应Call Function Exporting 参数,用户也可以增加参数。 导出——对应Call Function Importing 参数,用户也可以增加参数。 表——对应Call Function Table 参数,用户也可以增加参数,参考 打印必须是已存在的数据库表或结构。 例外——对应Call Function Exceptions参数,即出错捕捉参数。