SmartForms最全开发手册最全.docx

上传人:b****3 文档编号:4839623 上传时间:2022-12-10 格式:DOCX 页数:12 大小:22.58KB
下载 相关 举报
SmartForms最全开发手册最全.docx_第1页
第1页 / 共12页
SmartForms最全开发手册最全.docx_第2页
第2页 / 共12页
SmartForms最全开发手册最全.docx_第3页
第3页 / 共12页
SmartForms最全开发手册最全.docx_第4页
第4页 / 共12页
SmartForms最全开发手册最全.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

SmartForms最全开发手册最全.docx

《SmartForms最全开发手册最全.docx》由会员分享,可在线阅读,更多相关《SmartForms最全开发手册最全.docx(12页珍藏版)》请在冰豆网上搜索。

SmartForms最全开发手册最全.docx

SmartForms最全开发手册最全

1引言

1.1目的及范围

本文档主要介绍Smarform使用方法。

可适用于ABAP开发人员,分析人员使用。

--最全

1.2参考资料

•《SAP程序设计》

1.3文档结构

文档的各章节介绍的内容如下:

∙概述整个form的属性及用法

∙完整案例

∙附注

2Smartform应用及概述

Smarform主要是SAP针对商业处理中固定格外文件批量打印的一种工具。

主要分为Form、Style、Textmodule三个组成部分,此三个组成部分都可以被单独创建和重复利用(T-CODE:

SMARTFORMS),下面将分别讲解三种工具的使用方法。

3上传背景图片

输入TCODE:

SE78:

选择FormGraphics✍StoredonDocumentServer✍

GraphicsGeneralGraphics✍BMAPBitmapImages

点击

按钮导入图片

图片属性,导入成功

4FORM创建

4.1创建界面

输入T-CODE:

SMARTFORMS,进入以下界面,输入Form名称:

ZHZP_SM_TEST,点击Create

进入编辑窗口:

此窗口分为三个区域:

左边区域:

包括全部变量,和树形结构的节点导航。

当点击相应的节点时,中间区域将会显示该节点的属性,

中间区域:

维护各个节点的属性等

右边区域:

图形化窗口绘制,可以手动调节节点分布位置,实现节点在页面的布局

点击保存并选择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之前的功能,现在不能创建,只能修改已存在的

与Temlate共存

4.2.4逻辑空控制节点

节点类型

描述

可能包含的下级节点

Command(命令)

通过此节点执行特殊的命令(下一页、段落、打印机控制)

Loop(循环)

通过此节点重复处理它包含的子节点

除Page和Window所有节点

Alterantive(可选的)

设置条件,分支选择

系统默认两个节点:

True和False.他们下面可以包含除Page和Window所有的节点

4.2.5其他节点

Folder(文件夹)

通过此节点可以实现逻辑单元的封装

除Page和Window所有节点

Programlines(程序行)

通过此节点执行ABAP语句

所有节点共同的选项

GeneralAttributes

(一般属性)

节点的描述或者内容

OutputOptions(输出选项)

位置、样式、方框、阴影等属性,还有其他的一些输出属性

Conditons(条件)

如果条件为真,显示节点

4.3创建模板:

Template节点用于创建文档中的静态表格,即在打印前已经确认了行数。

如果打印的行数不确定,需要用Table节点或者Loop循环Template输出,以下为创建过程:

鼠标右键->创建->模板

点击创建后出现模板的属性设置界面,有三个页签:

页签

功能描述

Templage(模板)

设置阴影、边框和行类型

OutputOptions(输出选项)

打印时的样式、边框、阴影等

Conditons(条件)

条件满足则执行此节点及其下级节点

这里最重要的是行类型的设置,它代表了表格中一行数据的样式(比如多少个单元格,每个单元格长度宽度,边框等),可以设置设置不同的行类型。

点击修改笔可以直接在白色编辑区域直接画,也可以点击细节直接输入数据。

点击细节画面.

注意字段“参考“是引用另一行样式设置,则不需要再重新设置

样式:

系统提供了很多打印样式,可以选择,也可以自己设置样式,具体设置详见下一章节介绍。

条件页签:

此节点执行条件:

只有满足了设置了条件,才能执行此节点及它包含下一节点的内容

额外属性:

设置的事件将会执行

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

00003729

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.

DATA:

?

control_parameters?

TYPE?

ssfctrlop.

DATA:

?

output_options?

?

?

?

?

TYPE?

ssfcompop.

PARAMETERS:

?

?

p_carrid?

?

?

TYPE?

s_carr_id,

?

?

p_connid?

?

?

TYPE?

s_conn_id,

?

?

p_fldate?

?

?

TYPE?

s_date,

?

?

p_flag?

?

?

?

?

TYPE?

flag?

DEFAULT?

'X'.

control_parameters-no_dialog?

=?

'X'.

control_parameters-preview?

=?

'X'.

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'?

?

TYPE?

'E'.

ENDIF.

*执行Form生成的FM进行打印

CALL?

FUNCTION?

lv_fm_name

?

?

EXPORTING

?

?

?

control_parameters?

=?

control_parameters

?

?

?

output_options?

?

?

?

?

=?

output_options

?

?

?

?

user_settings?

?

?

?

?

?

=?

space

?

?

?

?

i_carrid?

?

?

?

?

?

?

?

?

?

?

=?

p_carrid

?

?

?

?

i_connid?

?

?

?

?

?

?

?

?

?

?

=?

p_connid

?

?

?

?

i_fldate?

?

?

?

?

?

?

?

?

?

?

=?

p_fldate

?

?

?

?

i_flag?

?

?

?

?

?

?

?

?

?

?

?

?

=?

p_flag

?

?

EXCEPTIONS

?

?

?

?

formatting_error?

?

?

=?

1

?

?

?

?

internal_error?

?

?

?

?

=?

2

?

?

?

?

send_error?

?

?

?

?

?

?

?

?

=?

3

?

?

?

?

user_canceled?

?

?

?

?

?

=?

4

?

?

?

?

my_exception?

?

?

?

?

?

?

=?

5

?

?

?

?

OTHERS?

?

?

?

?

?

?

?

?

?

?

?

?

=?

6.

IF?

sy-subrc?

<>?

0.

?

?

MESSAGE?

'Print?

fail'?

TYPE?

'E'.

ENDIF.

7附注

7.1合并单元格

对于在实际的报表开发中经常回需要合并单元格的情况,合并单元格的情况可以用两种方式实现,一种是通过多个窗口拼接来实现,一种是用模板无边框,下面就简单的讲解这两种方法:

7.1.1多窗口拼接

先创建相应的窗口:

然后在窗口下创建相应的模板

这样就很简单的实现了单元格的合并

如果有循环则可以在每个模板前加循环就行了

7.1.2无边框实现

先建一个窗口,然后在窗口下建一个模板

设置完后如图

这种方法不好的地方是,文本居中比较不好做.

7.2下载上传表格

1)虽然SAP提供了翻译功能,但根据经验很多是乱码,所以需要打印中文,请在中文环境下创建Form。

2)Form可以被下载到本地,和通过这个本地文件上传到任何系统(xml)。

也可以在tcode界面下载上传

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1