




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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)这是页面上两个不同的输出区域,用来输出数据,文本等内容。对于主窗体,你在一个form中只能定义一个窗体作为主窗体;不同page上的主窗体必须宽度相同,但是高度可以不同;一个没有主窗体的page指向的下一个页面不能为它自己。对于子窗体,它也可以在多个页面上面显示,但是那些不匹配subwindows的值,子窗体不会将它们显示出来。三、 一个小的smartform实例 首先给要创建的smartform取名为ztest_hxg_f3,点击“创建”按钮,进入下面的页面:首先看一下这个截图的左上角:form attributes:主要是这个窗体的一般属性和输出选择。form interface:这个属性很重要!它主要用来描述这个smartform的接口属性,比如import、export、tables、exception。当我们做好了一个smartform以后,如果想从abap程序中调用这个form的话,就会用到这些接口来传递参数,这个将在下面详细说明。global definitions:主要用来定义一些全局的数据,还有field symbols、初始化等。 当我们创建了ztest_hxg_f3的时候,系统会默认的建立一个页面(也就是刚开始在pages and windows下面的%page,它下面是一个main windows)。现在我将它的名字改为first ,描述改为“第一页“。然后在main window上点击右键,如上图创建一个table。看上图:这就是刚才我们定义的table的maintenance屏幕。我们在这个屏幕上可以定义很多的内容,看到了吗?它是smartform中一个很重要的组成部分哦,我们将要在form中显示的表格,都是在这里定义的。我们可以定义的内容有:table的宽度,水平线对齐方式。上面这个图用来定义table的输出格式,比如现在我们定义了line1,我们定义了三个列,三个列的宽度分别都是4cm。但是请注意,当你制定这些列的宽度的时候,它们三个的列的和不能大于表格的宽度,否则系统会报错。当然这里我只定义了一个line type,你还可以在下面定义很多的line type。做完了这一步以后我们可以点击进入这个屏幕看一下我们定义的表格的效果。看到了吗?我们定义的三列清楚的在上面显示出来了。上图中的line1表示我们用的是line1的输出格式(主要是指输出列的宽度和长度)。我们在屏幕上输出报表的时候,画表格,一般的表格都是由表头,还有内表的填充数据来组成,这里也不例外,比如我们就可以把我们定义的table和内表联系起来,只需点击上面的“table“边上的”data“选项卡,进去设置一下就可以了,取内表名为itab。具体设置如下图所示:首先我们来定义表头header,也就是各个列的列名:首先选中上面这些内容,这样在就会在table下面多处一个header事件,如图所示:这样我们就可以在header下面定义各个列的名称了。这里我们以固定列(即三列)来演示!在它下面首先要建立一个foler。你必须得为每一列都定义一个folder,这里有三列,我们就在header下面创建三个folder。folder结点的作用是用来合并一些相关结点的,并且它帮助我们很好的区分各个层次。建立好folder之后,在每个folder下面再创建一个text。这样就形成了这样一个层次结构。要想显示成下面这个样子:我们还得设置一两个地方:如图所示选中第一个folder,双击它,在右边的窗口中选中如图上面标记的内容,这样做的目的是,new line表示我们开始一个新的行,这个行是从folder1开始的,line type选择line1的意思是说,我们这个行的输出格式是以line1为参照的!那么接下来的两个folder的要这样设置,如下图:表示接下来的两个folder中的内容是和第一个folder同处一行,但是是不同的cell。接下来的事情就是设置每一列的列名了,注意这里的列名是静态的文本。我以第一列为例子来介绍,其他两列类似,选中folder1下的text1,如下图:在椭圆选中的地方输入你想要取的列名,比如我这里就是取为:第一列。其他两列的列名类似,这里就不再赘述了。 在前面我们已经把这个smartform和内表itab连接起来了。接下来就看看通过smartform显示动态内容的情况! 首先我们在form interface中定义这个表的名字和其他参数,如下图:然后点击左上角椭圆选中的那个按钮,这样在左下角就会出现这个smartform的field list。注意:这里定义的itab只有三个字段,刚好跟我们定义的table吻合,当然你也可以定义自己的内表。做完了这以步后测试一下,如果没有问题,就进行下一步: 同在table的header中定义一样,我们还要定义三个folder和三个text,定义好了图如下:这几个folder的设置和上面header一样,唯一不同的就是这里每个folder下面的text的内容不是我们自己在上面输入“第一列“、”第二列“、”第三列“。而是如上图的箭头所示,从左边那个地方用鼠标按住以后拖到右边的箭头所指的那个地方。这样我们这列对应的数据就会是”动态“的。 做好了这一切以后,测试,没有错误,那么基本上一个简单的smartform就完成了。当一个smartform激活以后,系统就会自动给它分配一个function module。我们只需要点击“f8“直接运行这个smartform,就会进入这个界面:上面这个function module就是我们做完了的smartform所对应。你可以在程序中调用这个smartform。下面就介绍一下在程序中如何写代码:report z_hxg_007 .data: itab like alsmex_tabline occurs 0 with header line.data fm_name type rs38l_fnam.data: num1 type i, num2 type i, num3 type i.call function ssf_function_module_name “这个function主要是用来取你要调用的 exporting smartform对应的function module的 formname = ztest_hxg_f3 名字然后赋值给fm_name,因为smartform importing 对应的function module名字很长,并且 fm_name = fm_name 难以记忆 exceptions no_form = 1 no_function_module = 2 others = 3.num1 = 1.num2 = 2.num3 = 3.do 20 times. itab-row = num1. itab-col = num2. itab-value = num3. append itab. clear itab. num1 = num1 + 1. num2 = num2 + 1. num3 = num3 + 1.enddo.call function fm_name “调用smartform,很显然这里是以function * exporting moudule的方式和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.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州织金翔盛工业发展有限公司招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 浙江国企招聘2025杭州市临安区城市发展投资集团有限公司下属众诚咨询公司公开招聘工作人员4人笔试历年参考题库附带答案详解
- 2025黑龙江双鸭山集贤县公安局交通警察大队招聘勤务辅助人员30人笔试历年参考题库附带答案详解
- 2025贵州黔东南州黔凯城镇建设投资(集团)有限责任公司招聘8人笔试历年参考题库附带答案详解
- 2025航天六院内蒙古航天红峡化工有限公司招聘30人考前自测高频考点模拟试题及一套完整答案详解
- 2025浙江舟山市嵊泗县兴盛公路养护工程有限公司笔试历年参考题库附带答案详解
- 2025广东汕尾市交通投资集团有限公司招聘14人笔试历年参考题库附带答案详解
- 2025年嘉兴市级机关公开遴选公务员8人模拟试卷及答案详解(考点梳理)
- 2025中铝宁夏能源集团社会招聘笔试历年参考题库附带答案详解
- 2025福建三明市教育局部分直属单位选聘5人(二)模拟试卷完整参考答案详解
- 2025年合肥市轨道交通集团有限公司第二批次社会招聘12人考试历年参考题附答案详解
- 甘肃电网考试题目及答案
- 2025年专升本医学影像检查技术试题(含参考答案)解析
- 《互联网应用新特征》课件+2025-2026学年人教版(2024)初中信息技术七年级全一册
- 过节前安全培训课件
- 高二生物上学期第一次月考(安徽专用)(全解全析)
- 模具安全操作注意培训课件
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- 农产品电子商务运营 教学大纲、教案
- 2025年秋新北师大版数学2年级上册全册同步教学设计
- 抖音短视频签约合同范本
评论
0/150
提交评论