smartforms实例下载.docx

上传人:b****4 文档编号:4627518 上传时间:2022-12-07 格式:DOCX 页数:18 大小:1.27MB
下载 相关 举报
smartforms实例下载.docx_第1页
第1页 / 共18页
smartforms实例下载.docx_第2页
第2页 / 共18页
smartforms实例下载.docx_第3页
第3页 / 共18页
smartforms实例下载.docx_第4页
第4页 / 共18页
smartforms实例下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

smartforms实例下载.docx

《smartforms实例下载.docx》由会员分享,可在线阅读,更多相关《smartforms实例下载.docx(18页珍藏版)》请在冰豆网上搜索。

smartforms实例下载.docx

smartforms实例下载

SMARTFORM知识

一、SMARTFORM的特征

SMARTFORM是在SAPScript的基础之上产生的一种新的FORM制作方式,它完全兼容SAPScript。

在做SMARTFORM的过程中基本上不需要多少编程知识,它有一个图形界面来帮助我们完成工作。

这个图形界面由三个部分组成,它们分别是:

FormPainter、PCEditer、TablePainter。

启动SMARTFORM设计的事务代码:

SMARTFORMS,进入的界面如下:

输入你要创建的SMARTFORM的名称,然后点击“创建”,进入下面的FormBuilder界面:

注:

上面另外两个选项Style、Textmodule分别是用来定义FORM的样式和文本模块的。

上面的屏幕分为三个部分:

FormPainter:

主要用来设计SMARTFORM输出页面的格式,可以在页面上包含窗口和图(最右边)形,还可以指定它们在页面上的位置以及它们的大小等。

在图片左上角的工

具栏有一个按钮

可以用来显示和隐藏这个窗口。

PCEditer:

主要用来初始化文本(TEXT)和域(FIELD),它包含的功能主要有以下几个方(中间)面,1)输入、删除、选择、

NavigatingintheSAPFormBuilder:

它主要用来显示一个SMARTFORM的层次结构。

(最左边)当你在层次结构中选择了一个NODE(结点)后,在上面截屏的中间部分会显示这个NODE的MAINTENANCE屏幕。

 

二、在做FORM前要了解的几个概念

1、FORM的结构:

一个FORM往往是由页面(PAGES)、输出区域(OUTPUTAREAS即WINDOWS)、地址栏(ADRESS)、图形(GRAPHICS,比如公司LOGO)、数据(DATA)、以及文本内容(TEXT)组成。

2、主窗体和子窗体:

(MAINWINDOWSANDSUBWINDOWS)这是页面上两个不同的输出区域,用来输出数据,文本等内容。

对于主窗体,你在一个FORM中只能定义一个窗体作为主窗体;不同PAGE上的主窗体必须宽度相同,但是高度可以不同;一个没有主窗体的PAGE指向的下一个页面不能为它自己。

对于子窗体,它也可以在多个页面上面显示,但是那些不匹配SUBWINDOWS的值,子窗体不会将它们显示出来。

 

三、一个小的SMARTFORM实例

首先给要创建的SMARTFORM取名为ZTEST_HXG_F3,点击“创建”按钮,进入下面的页面:

首先看一下这个截图的左上角:

FORMATTRIBUTES:

主要是这个窗体的一般属性和输出选择。

FORMINTERFACE:

这个属性很重要!

它主要用来描述这个SMARTFORM的接口属性,比如IMPORT、EXPORT、TABLES、EXCEPTION。

当我们做好了一个SMARTFORM以后,如果想从ABAP程序中调用这个FORM的话,就会用到这些接口来传递参数,这个将在下面详细说明。

GLOBALDEFINITIONS:

主要用来定义一些全局的数据,还有FIELDSYMBOLS、初始化等。

 

当我们创建了ZTEST_HXG_F3的时候,系统会默认的建立一个页面(也就是刚开始在PAGESANDWINDOWS下面的%PAGE,它下面是一个MAINWINDOWS)。

现在我将它的名字改为FIRST,描述改为“第一页“。

然后在MAINWINDOW上点击右键,如上图创建一个TABLE。

看上图:

这就是刚才我们定义的TABLE的MAINTENANCE屏幕。

我们在这个屏幕上可以定义很多的内容,看到

了吗?

它是SMARTFORM中一个很重要的组成部分哦,我们将要在FORM中显示的表格,都是在这里定义的。

我们可以定义的内容有:

TABLE的宽度,水平线对齐方式。

上面这个图用来定义TABLE的输出格式,比如现在我们定义了LINE1,我们定义了三个列,三个列的宽度分别都是4CM。

但是请注意,当你制定这些列的宽度的时候,它们三个的列的和不能大于表格的宽度

,否则系统会报错。

当然这里我只定义了一个LINETYPE,你还可以在下面定义很多的LINETYPE。

做完了这一步以后我们可以点击

进入这个屏幕看一下我们定义的表格的效果。

看到了吗?

我们定义的三列清楚的在上面显示出来了。

上图中的LINE1表示我们用的是LINE1的输出格式(主要是指输出列的宽度和长度)。

我们在屏幕上输出报表的时候,画表格,一般的表格都是由表头,还有内表的填充数据来组成,这里也不例外,比如我们就可以把我们定义的TABLE和内表联系起来,只需点击上面的“TABLE“边上的”DATA“选项卡,进去设置一下就可以了,取内表名为ITAB。

具体设置如下图所示:

首先我们来定义表头HEADER,也就是各个列的列名:

首先选中上面这些内容,这样在就会在TABLE下面多处一个HEADER事件,如图所示:

这样我们就可以在HEADER下面定义各个列的名称了。

这里我们以固定列(即三列)来演示!

在它下面首先要建立一个FOLER。

你必须得为每一列都定义一个FOLDER,这里有三列,我们就在HEADER下面创建三个FOLDER。

FOLDER结点的作用是用来合并一些相关结点的,并且它帮助我们很好的区分各个层次。

建立好FOLDER之后,在每个FOLDER下面再创建一个TEXT。

这样就形成了这样一个层次结构。

要想显示成下面这个样子:

 

我们还得设置一两个地方:

如图所示

选中第一个FOLDER,双击它,在右边的窗口中选中如图上面标记的内容,这样做的目的是,NEWLINE表示我们开始一个新的行,这个行是从FOLDER1开始的,LINETYPE选择LINE1的意思是说,我们这个行的输出格式是以LINE1为参照的!

那么接下来的两个FOLDER的要这样设置,如下图:

表示接下来的两个FOLDER中的内容是和第一个FOLDER同处一行,但是是不同的CELL。

接下来的事情就是设置每一列的列名了,注意这里的列名是静态的文本。

我以第一列为例子来介绍,其他两列类似,选中FOLDER1下的TEXT1,如下图:

在椭圆选中的地方输入你想要取的列名,比如我这里就是取为:

第一列。

其他两列的列名类似,这里就不再赘述了。

 

在前面我们已经把这个SMARTFORM和内表ITAB连接起来了。

接下来就看看通过SMARTFORM显示动态内容的情况!

首先我们在FORMINTERFACE中定义这个表的名字和其他参数,如下图:

然后点击左上角椭圆选中的那个按钮,这样在左下角就会出现这个SMARTFORM的FIELDLIST。

注意:

这里定义的ITAB只有三个字段,刚好跟我们定义的TABLE吻合,当然你也可以定义自己的内表。

 

做完了这以步后测试一下,如果没有问题,就进行下一步:

同在TABLE的HEADER中定义一样,我们还要定义三个FOLDER和三个TEXT,定义好了图如下:

这几个FOLDER的设置和上面HEADER一样,唯一不同的就是这里每个FOLDER下面的TEXT的内容不是我们自己在上面输入“第一列“、”第二列“、”第三列“。

而是如上图的箭头所示,从左边那个地方用鼠标按住以后拖到右边的箭头所指的那个地方。

这样我们这列对应的数据就会是”动态“的。

做好了这一切以后,测试,没有错误,那么基本上一个简单的SMARTFORM就完成了。

当一个SMARTFORM激活以后,系统就会自动给它分配一个FUNCTIONMODULE。

我们只需要点击“F8“直接运行这个SMARTFORM,就会进入这个界面:

上面这个FUNCTIONMODULE就是我们做完了的SMARTFORM所对应。

你可以在程序中调用这个SMARTFORM。

下面就介绍一下在程序中如何写代码:

reportz_hxg_007.

data:

itablikealsmex_tablineoccurs0withheaderline.

datafm_nametypers38l_fnam.

data:

num1typei,

num2typei,

num3typei.

 

callfunction'SSF_FUNCTION_MODULE_NAME'“这个FUNCTION主要是用来取你要调用的

exportingSMARTFORM对应的FUNCTIONMODULE的

formname='ZTEST_HXG_F3'名字然后赋值给FM_NAME,因为SMARTFORM

importing对应的FUNCTIONMODULE名字很长,并且

fm_name=fm_name难以记忆

exceptions

no_form=1

no_function_module=2

others=3.

num1=1.

num2=2.

num3=3.

do20times.

itab-row=num1.

itab-col=num2.

itab-value=num3.

appenditab.

clearitab.

num1=num1+1.

num2=num2+1.

num3=num3+1.

enddo.

 

callfunctionfm_name“调用SMARTFORM,很显然这里是以FUNCTION

*EXPORTINGMOUDULE的方式和SMARTFORM交互

*ARCHIVE_INDEX=

*ARCHIVE_PARAMETERS=

*CONTROL_PARAMETERS=

*MAIL_APPL_OBJ=

*MAIL_RECIPIENT=

*MAIL_SENDER=

*OUTPUT_OPTIONS=

*USER_SETTINGS='X'

*G_CARRID=

*G_CONNID=

*G_FLDATE=

*IMPORTING

*DOCUMENT_OUTPUT_INFO=

*JOB_OUTPUT_INFO=

*JOB_OUTPUT_OPTIONS=

tables

itab=itab“把ITAB内表的内容传递到SMARTFORM中去

exceptions

formatting_error=1

internal_error=2

send_error=3

user_canceled=4.

*others=5.

运行程序,到达这个屏幕:

 

系统会提示你输入一个“输出设备”,随便输入一个,然后点击下面的“PRINGPREVIEW”。

你就会看到最后的结果!

如下图

基本上就介绍这么多,其实SMARTFORM可以把FORM做的非常好看,我们还可以插入图形,ADRESS等等很多元素,因为自己还用的不是很熟,也就只能分享这点成果。

后续我会关注的问题就是复杂的SMARTFORM的建立,以及我们在打印的过程中如何控制SMARTFORM的换页等,希望有机会跟你探讨!

呵呵^_^

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

当前位置:首页 > 初中教育 > 语文

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

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