SmartForms最全开发手册最全Word格式文档下载.docx
《SmartForms最全开发手册最全Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SmartForms最全开发手册最全Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
中间区域:
维护各个节点的属性等
右边区域:
图形化窗口绘制,可以手动调节节点分布位置,实现节点在页面的布局
点击保存并选择PACKAGE和CR
节点全局设置包含表格属性,表格接口,全局定义
表格属性
Form的基本属性,包括创建信息和输出参数
表格接口
包含Form的标准参数和自定义参数,用于与调用程序交互
全局定义
定义用于整个Form的变量,类型,初始化,单位等
Field按钮控制Form中参数和系统变量的显示
4.2节点介绍
Form是由不同类型的节点组成。
一个Form包含了一个或者多个Page,第一个Page是Form执行的的开始(当创建Form时,系统默认创建这个Page),下面将讲解每个节点的功能及其包含的子节点,
4.2.1输入区域
节点类型
描述
可能包含的下级节点
Page(页面)
页面
Window,graphic,address
Window(窗口)
一个页面的输出区域:
包含三种类型:
Mainwindow,
Secondarywindow,
Copieswindow,
Finalwindow
Window是所有数据的输出区域。
你可以在FormPainter中设置它的大小和位置。
MainWindow和SecondaryWindow。
一个Form中只有一个MainWindow,且在创建Form时系统默认已创建
除page和window以外的所有节点
此两种节点创建FORM时,系统默认创建一个PAGE,和一个Mainwindow
4.2.2不包含下级节点的节点
Text(文本)
通过此节点可以打印除过地址外所有文本
Graphic(图形)
通过此节点可以加入图片
Address(地址)
通过此节点可以处理地址,当打印时,系统会直接读取地址数据并格式化
4.2.3列表输出
Template(模板)
通过此节点打印固定数据表格
除Page、Window、Template、Table
Table(表格)
通过此节点打印动态数据的表格
创建此类型的节点,系统会自动创建三个节点:
Header,MainAreaandFooter。
LOOP,FOLDER,TABEL节点可以备用
Tableline(表行)
通过此节点打印Tableh或者Template中的一行
Tablecell
Tablecell(单元格)
根据行类型打印单元格
与Temlate共存
Oldtablenode
Release6.10之前的功能,现在不能创建,只能修改已存在的
4.2.4逻辑空控制节点
Command(命令)
通过此节点执行特殊的命令(下一页、段落、打印机控制)
Loop(循环)
通过此节点重复处理它包含的子节点
除Page和Window所有节点
Alterantive(可选的)
设置条件,分支选择
系统默认两个节点:
True和False.他们下面可以包含除Page和Window所有的节点
4.2.5其他节点
Folder(文件夹)
通过此节点可以实现逻辑单元的封装
Programlines(程序行)
通过此节点执行ABAP语句
所有节点共同的选项
GeneralAttributes
(一般属性)
节点的描述或者容
OutputOptions(输出选项)
位置、样式、方框、阴影等属性,还有其他的一些输出属性
Conditons(条件)
如果条件为真,显示节点
4.3创建模板:
Template节点用于创建文档中的静态表格,即在打印前已经确认了行数。
如果打印的行数不确定,需要用Table节点或者Loop循环Template输出,以下为创建过程:
鼠标右键->
创建->
模板
点击创建后出现模板的属性设置界面,有三个页签:
页签
功能描述
Templage(模板)
设置阴影、边框和行类型
打印时的样式、边框、阴影等
条件满足则执行此节点及其下级节点
这里最重要的是行类型的设置,它代表了表格中一行数据的样式(比如多少个单元格,每个单元格长度宽度,边框等),可以设置设置不同的行类型。
点击修改笔可以直接在白色编辑区域直接画,也可以点击细节直接输入数据。
点击细节画面.
注意字段“参考“是引用另一行样式设置,则不需要再重新设置
样式:
系统提供了很多打印样式,可以选择,也可以自己设置样式,具体设置详见下一章节介绍。
条件页签:
此节点执行条件:
只有满足了设置了条件,才能执行此节点及它包含下一节点的容
额外属性:
设置的事件将会执行
4.4创建文件夹
文件夹
有两个页签,功能同创建模板的一样
4.5创建文本
Text输出文本,有四种类型,一般情况下选择E或者M类型即可
类型
备注
DDynamicType(动态文本)
此种类型在Netweaver7.0中没有介绍
ETextElement(文本元素)
创建新的文本
支持静态和动态
IIncludeText(包含文本)
引用SAPscriptTexts
MTextModule(文本模板)
引用TextModule
文本
有四个页签,其中“输出选项"
和”条件“同以上两种节点。
针对文本节点,在输出选项需要特殊处理:
设置行与列的位置,可参考在模板中设置的行类型。
详见下图
设置文本类型类型为文本元素;
可以直接输入要显示/打印的容,如Airline,也可以动态数据输出,则需要点击“添加“按钮
注意:
字段前后需要增加符号“&
“
4.6执行SMARTFORMS
Form创建成功并激活后,系统自动生成一个FM.执行FM可以预览结果并打印。
手动执行此FM或者程序调用这个FM实现执行Form的功能。
程序调用将在案例中讲解,此处讲解执行执行FM.
F8或者点击执行按钮
生成的FM:
执行FM,可以选择打印机,并提供打印预览和直接打印的功能
4.7创建smartforms样式
Smartforms的样式主要就是定义一些字体,颜色,字体大小一些对齐方式什么的,然后段落的格式,
首先输入TCODE:
smartforms进入创建smartforms的界面。
如图:
点击创建之后进入样式创建界面
样式中分三部分,表头,段落,字符,我们可以针对自己想要的样式来定义一些,然后用与smartforms中,
三部分的解释如下:
表头数据
表头数据,包括标准配置和管理
创建时系统默认显示此页签
段落格式
段落格式,可以段落设置
字符格式
字符格式,可以字体设置
4.7.1创建表头数据
创建Style时系统默认显示配置表头数据
标准设置
标准设置,可以针对字体,默认标准段落,及预览效果
其中标准字段需要设置下面创建的段落格式,否则不能激活
管理
管理信息,主要显示谁创建什么时间创建
然后创建段落的格式有左对齐,右对齐,居中的
完后需要回到表头数据中把标准段落填上,不然无法激活
点击保存,激活,这样样式就是初步完成,后面根据samrtforms中的应用情况做想应得调整.
5文本模块创建
文本模块作为Form中节点文本一个类型,维护了它,则可以多个Form共同使用,提供Form创建的效率。
两个页签组成:
输出文本
样式选择,翻译(国际化)及创建信息
同创建文本一样,可以动态和静态类型
6案例
6.1案例描述
以下是客户预订航班清单,要求只有第一页有表头。
我们将依次案例创建Form。
航空公司
航班
航班日期
客户
预定日期
票价
AA
0017
2011.08.31
00003729
2011.06.09
803,58
......
..........
输入Tcode:
SMARTFORMS,
创建Form:
zhzp_sm_test
系统默认生成Page和Window进入维护界面:
6.2设置背景图片
在PAGE1中可以设置背景图片
6.3创建接口参数
I_CARRID,I_CONNID,I_FLDATE,I_FLAG为查询条件:
航空公司,航班,日期,输出方式标识
如果有要输出的数据可以在EXPORT中定义,如输出或输入有表格则可以通过Tables定义,这里我们只定义四个个查询输入参数,取数逻辑由于简单就放到smartforms中来实现了。
6.4创建全局变量
全局变量GT_SBOOK用于保存预订的航班清单,GW_SBOOK用于循环处理时工作区。
GV_TABIX用于流程控制,后面将讲到。
6.5创建节点程序行:
此处写代码获取要打印的航班清单。
当然,要打印的数据可通过接口传,这里只是为了演示节点的创建过程。
输入参数,输出参数,代码段
6.6创建节点可选条件
这里创建这个节点是用于碰到打印输出是以表格还是模板
6.7TURE节点下创建节点循环
循环处理航班清单
6.8循环下创建节点程序行:
用于实现第一页有表头的条件判断。
6.9创建节点模板(Template)
此节点需要创建在Loop下。
并设置每行的样式,可以设置很多不同的,这里我们简单设置一种
6.10模板下创建可选择节点
条件设置:
只有第一行才执行打印表头
6.11创建文本
在可选的节点的True节点中创建,此处将创建表头False中创建容
另外还有一点比较重要就是行列的设置
6.12最终的节点分布
6.13创建表格(table)节点
这类型的创建,我们讲解的时候再创建.
6.14程序调用Form
FM:
SSF_FUNCTION_MODULE_NAME获取Form生成的FM,动态调用此FM
代码如下:
REPORT
zhzp_call_sm_sbook.
DATA:
lv_fm_name
TYPE
rs38l_fnam.
control_parameters
ssfctrlop.
output_options
ssfcompop.
PARAMETERS:
p_carrid
s_carr_id,
p_connid
s_conn_id,
p_fldate
s_date,
p_flag
flag
DEFAULT
'
X'
.
control_parameters-no_dialog
=
control_parameters-preview
output_options-tddest
LONP'
*获取Form生成的FM
CALL
FUNCTION
SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname
ZHZP_SM_TEST'
"
Form的名称
IMPORTING
fm_name
lv_fm_name
EXCEPTIONS
no_form
1
no_function_module
2
OTHERS
3.
IF
sy-subrc
<
>
0.
MESSAGE
The
Form
is
not
exit'
E'
ENDIF.
*执行Form生成的FM进行打印
control_parameters
output_options
user_settings
space
i_carrid
p_carrid
i_connid
p_connid
i_fldate
p_fldate
i_flag
p_flag
formatting_error
internal_error
send_error
3
user_canceled
4
my_exception
5
6.
Print
fail'
7附注
7.1合并单元格
对于在实际的报表开发中经常回需要合并单元格的情况,合并单元格的情况可以用两种方式实现,一种是通过多个窗口拼接来实现,一种是用模板无边框,下面就简单的讲解这两种方法:
7.1.1多窗口拼接
先创建相应的窗口:
然后在窗口下创建相应的模板
这样就很简单的实现了单元格的合并
如果有循环则可以在每个模板前加循环就行了
7.1.2无边框实现
先建一个窗口,然后在窗口下建一个模板
设置完后如图
这种方法不好的地方是,文本居中比较不好做.
7.2下载上传表格
1)虽然SAP提供了翻译功能,但根据经验很多是乱码,所以需要打印中文,请在中文环境下创建Form。
2)Form可以被下载到本地,和通过这个本地文件上传到任何系统(xml)。
也可以在tcode界面下载上传