已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海普华科技发展有限责任公司 PowerOn高级报表制作手册PowerOn高级报表制作手册概述PowerOn中嵌套的ReportMachine是高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,任何继承自TDataSet的数据源,Pascal数组和记录。PowerOn中的报表设计器还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。你可以发现ReportMachine报表设计器有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏,窗口。类西于Excel的操作方式,你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表。本参考手册包含了我们平时能够用到的各种样式报表的讲解以及样例,可以满足绝大多数用户对报表的需求,根据本手册,您可以自行在PowerOn中进行各种样式报表的制作,将功能及其强大的PowerOn中的各种数据以报表的形式表现出来。我们经常用到的是网格式报表,所以手册中所有示例均式“网格式报表”。第一章 PowerOn中报表简介PowerOn提供了一套完全自定义的报表体系,可以在系统运行时增加和设计各种报表。在除项目概况的模块主窗体中,可以选择【工具】=【报表】打开报表清单;在查看项目记录内容的时候也可以点击右侧工具栏上的【报表】打开报表清单。但是这两种情况略有不同,其区别在于报表设计时系统提供的数据集不同。1.1 报表增加PowerOn中增加报表的地方,总的来说有两种方式。第一中,在进入PowerOn每个功能模块以后,工具菜单下面有个报表菜单,如图1-1-1:图1-1-1 工具菜单下报表点击报表,如图1-1-2:图1-1-2 报表清单第二种增加报表的方式就是在当前打开的功能窗体上,点击报表进行报表增加,如图1-1-3:图1-1-3 基于功能窗体的报表1.2 报表订阅PowerOn中不但可以方便地进行报表的设计、增加、删除、复制等,而且还可以进行报表订阅功能。订阅了功能报表,当用户想查看某个报表的数据时,就可以不进入到具体的功能模块,而直接在“报表订阅”就可以浏览。首先我们回到“工程中心”,自定义自己需要订阅的报表。如图1-2-1:图1-2-1 自定义报表点击自定义报表,如图1-2-2:图1-2-2 报表清单然后我们就可以订阅自己关注的报表了,如图1-2-3:图1-2-3 报表订阅点击编辑按钮,如图1-2-4:图1-2-4 选择报表我们在这里选择自己要订阅的报表,添加到右边框里即可。第二章 PowerOn报表控件及工具简单介绍 PowerOn报表制作工具有很多的控件,我们在进行报表制作的时候,有时候对一些控件无从下手,不知道该它到底做什么用的。下面我们就一起来学习下这些控件。2.1 边条控件(TRMBand)像其它可视化报表设计器一样,ReportMachine是一个基于区域的报表生成器。意思是你可以在报表上放置区域控件,用来组织报表的结构。在我们的设计器里把区域称为“边条(Band)”下表列出ReportMachine支持的Band类型,以及在最终报表中它们的位置。注意:Band并不是按照在报表设计器中的物理位置的顺序出现,Band类型决定将它们在最终报表中的位置。然而,放置Band在恰当的位置会使它更易于修改。如图2-1-1:图2-1-1 band列表图2-1-2 band介绍如果你选择分组标头带区类型,双击该分组标头。这个编辑器允许你定义分组条件,基于数据表的字段或其它一些表达式(例如按姓名的第一个字母进行分组,同样也能用于电话目录等)。需要注意的是:数据集必须按分组条件排序。如图2-1-3:图2-1-3 分组如果你在Band上右击,你将看到一组快捷菜单。包含:伸展:这个意思是由Band中的对象高度决定区域高度。“Text”对象的“自动折行”选项激活时将按需要伸展。这允许自动调节区域(行)高度以适应行中的所有数据。分隔:在页面未满之前报表新页面。强迫换页:强迫Band内容打印在一个新页面。在第一页:这个Band将打印在第一页(仅适用于页头和页脚)。在末页:这个Band将打印在末页(仅适用于页脚)。2.2 文本框控件(TRMMemoview)这个对象无疑是ReportMachine中最强大、最灵活的对象。主要是,它提供一个包含多行文本的文本框。通过“文本”和“边框”工具栏,你可以设置边框的类型、颜色和宽度;以及字体属性、文本对齐方式和字体方向(垂直或水平)。Text对象的内容主要由备注类型的对象组成,可以包含:文本,变量,数据字段,系统函数或这些的任意组合。文本对象的字体、对齐等属性的设置对其中的所有内容有效。下面是一些文本对象内容的例子: 长度(CM):Length 组合静态文字(长度(CM):)和变量(Length)长度(CM):DataSet1.Length 组合静态文字(长度(CM):)和数据字段(DataSet1.Length) 长度(CM):Lengthinch * 2.54 - 使用静态文字、变量和表达式(注意中括号的使用,变量和表达式适用各自的中括号) 长度(CM):DataSet1.Length_inch * 2.54 - 使用静态文字、数据字段和表达式(表达式中数据字段可以不用中括号)修改Text对象最快速的方法是在报表编辑设计器中选择文本框(点击它)并双击。这将出现文本编辑器对话框,如图2-2-1:图2-2-1 文本编辑器2.3 汇总框(TRMCalcMemo)“汇总框”和“文本框Text” 对象大部分都相同,不同之处只是“汇总框”多了一个“CalcType”属性,轻松实现某Band的数据汇总功能,选中一个“汇总框”,从“对象查看器”中选择“CalcType”属性,进入如图2-3-1:图2-3-1 属性首先可以选择汇总类型:合计、平均、最小、最大、计数等,也可以选择自定义自己手工设置;然后选择想要汇总的数据Band;选中Band之后需要设置汇总的条件,调用表达式编辑器实现.打印后初始化选项用于两遍报表,如果合计结果数据要在数据列表未结束前显示需要设置两遍报表,然后为了避免重复计算需要选中“打印后初始化选项”;统计不可见行设置是否统计隐含掉的对象。如果开始选择了 “User”要自己设置汇总类型,则可以在下面设置统计的初始化值和计算值。汇总框和Text文本框的区别就是自动增加了汇总功能。例如:要实现对字段“SO.TOTAL_SALE”(SO为表名,TOTAL_SALE为字段名称)字段的汇总:如果用“汇总框”实现,在主项注脚Band上放置一个“汇总框”对象,编辑CalcType属性, 设置汇总类型为“合计”,选中Band1,然后设置该“汇总框”对象的Memo属性,在文本编辑器写脚本:SO.TOTAL_SALE。图2-3-2 属性2.4 图片(TRMPictureview)图片对象用于插入图像到一个报表中。图像格式支持包括BMP、WMF、ICO、JPG和GIF:如图2-4-1:图2-4-1 设置单元格类型图2-4-2 图片 图片对象编辑器用于选择一个图像,清除图像或从数据库的一个BLOB字段选择一个图像。需要从文件插入一个文件,双击图片对象。需要从BLOB字段手稿图像,选择图片对象,按Ctrl+Enter调用文本编辑器,然后在文本编辑器中调用BLOB字段名,例如: TableName.GraphicField。这个操作执行从文本编辑器中插入的数据字段选择图片。如果要直接打印一个数据库中的加密图像,使用OnBeforePrint事件在报表运行时解密图像并调用到运行时的报表中。如果要被打印的图像存贮在磁盘中,使用OnBeforePrint在打印之前调用图像。图片对象的快捷菜单允许设置下列选项: 伸展:图像将伸展到整个矩形区。 锁定纵横比:如果缩放则图像的比例是受保护的。 居中:图像在矩形区中居中。 Blob类型:BLOB流类型:BMP, WMF, ICO or JPG。这是必需的。使用对象观察器设置这个属性。2.5 工具栏 常用用具栏,如图2-5-1:图2-5-1 常用工具栏文本工具栏,如图2-5-2:图2-5-2 文本工具栏边框工具栏,如图2-5-3:图2-5-3 边框工具栏网格工具栏,如图2-5-4:图2-5-4 网格工具栏对话框工具栏,如图2-5-5:图2-5-5对话框工具栏第三章 数据来源基于PowerOn功能窗体的报表制作这种报表的制作相对来说是非常简单的。因为我们不需要自己构造报表的数据来源,可以直接从当前打开的功能窗体上获取数据。首先我们进入PowerOn,打开需要制作报表的功能窗体。比如我们现在要将当前打开的领料单的数据以报表的形式展现出来,我们就可以制作如下报表。进入到“项目记录”,在左边选择“领料记录”,打开任何一个已经发生的领料单,如图3-1: 图3-1 领料记录 点击右边的报表按钮,如图3-2:图3-2 新增报表选中网格式报表,点击增加按钮,如图3-3:图3-3 空报表模板3.1报表模板的制作现在展现在我们面前的是一个空的报表壳子,和我们平时一直在用的Execl样式类似,这样就使我们制作报表的信心大增了。有了这样一个绘制报表模板的空间,可以任我们绘制,根据我们的需要设计不同的报表样式。报表模板本身就是描述怎样可以看到正确的报表。在ReportMachine中提供了报表开发的可视化环境用于创建报表。报表设计器功能强劲,简单又易于使用。报表设计器的界面由带有浮动的工具栏,可以自由地改变它们的位置,使用对象观察器(Objects Inspector)可以控制对象的属性。报表样式的设计类似我们的Execl,其中的单元格合并、居中、居左等都与Excel一样。根据需要,我们设计报表样式如下图3-1-1:图3-1-1 报表样式每个报表模板由多个区域组成,ReportMachine把这些区域称为Band。有两种类型的Band:固定区域Band(比如报表标题,页标头,页注脚等等)和用于显示数据集中所有记录的Band(比如主项数据栏)。数据Band需要联接到数据源,内容是数据源中的记录。所以我们将上图中的第一行、第二行设置为“标题”,第三行设置为“数据标头”,第四行设置为“主项数据”。如图3-1-2:图3-1-2 设置行属性选择“标题”后(页标头的用法,相见第三章第三节),如下图3-1-3:图3-1-3 band属性设置依据上面的方法,将其他band分别设置如下属性,如图3-1-4:图3-1-4 设置前三个band属性3.2 数据源的关联现在设置最重要的一个band的属性,也就是用于显示数据集中所有记录的Band,如图3-2-1: 图3-2-1 数据源的选择 图中出现的DS_Fetch以及DS_FetchDetaill 二个数据集都是我们当前打开窗体上的数据源。在此,我们选择我们所要用到的数据源“DS_FetchDetail”,点击确定按钮,如图3-2-2:图3-2-2 显示报表数据的band设置完毕到目前为止,我们报表的主要应用的模板已经设计好了,如果需要在现在的基础上增加一行或者一列,可以在相应的行或者列上点击鼠标右键进行操作(操作步骤类似Excel)。我们下一步要做的事情就是在数据来源的band上进行各个字段的关联,也就是说将各个数据标头对应到相应的数据集字段,这样才可以保证数据的正确性。如何进行关联呢?我们下面将进行详细的介绍。3.3 数据集字段的关联 我们现在将报表中各个数据标头的字段关联起来。先来进行第一个标头“材料编码”的关联。鼠标左键双击“材料编码”下面主项数据band对应的单元格,出现如图3-3-1:图3-3-1 材料编码字段关联接下来,我们点击弹出窗体上的字段按钮,如图3-3-2:图3-3-2 插入数据字段鼠标选中我们刚刚需要的数据源“Ds_FetchDetail”,在右边的表格中出现了该数据下的所有字段,如图3-3-3: 图3-3-3 选择字段这里我们选中”MatCode”,点击确定,如图3-3-4:图3-3-4 选择相应字段再点击确定按钮,材料编码相应的字段已经对应完毕,如图3-3-5:图3-3-5 材料编码字段对应完毕此时,我们可以进行简单的预览,点击预览按钮,如图3-3-6:图3-3-6 点击预览图3-3-7 预览效果我们可以看到材料编码已经从当前打开的窗体上读取出来了。但是报表右边有部分没有显示出来,这个时候我们有2种处理方式,一种是:手动去调列的宽度;二种是:设置页面属性。如图3-3-8:图3-3-8 页面设置将打印方向设置为“横向”, 点击确定,此时再次预览,如图3-3-9:图3-3-9 页面调整后的预览效果参照材料编码字段的关联方式,将其他的标头相应的字段一一进行关联,预览如图3-3-10:图3-3-10 关联后的预览效果对于任何PowerOn中的记录,只要用户想从当前打开的某个功能窗体上获取报表数据,我们都可以依照上面的方式进行报表模板的设计、报表BAND的设置、报表数据源的关联、报表标头字段的关联以及页面的相关设置等等。我们可以看出,这样一张数据清晰的数据报表,仅仅需要几分钟的时间就可以搞定了。同样,在此样报表的基础上,我们仍然可以进行报表功能的增加,比如我们可以增加按照金额进行汇总、按照材料类别进行分组等更加强大的功能。这些报表的制作我们将在下面一一进行详细的介绍。第四章 自定义数据源的PowerOn报表的制作我们上面讲述了报表的数据来源是基础功能窗体的报表制作,相对来说简单点。现在我们介绍下报表的数据来源是基于自定义数据源的报表制作。所有报表中所要提取的数据信息、数据项目都要由我们自己通过写脚本来构造。这种报表的制作就要求制作报表的用户有一定的SQL脚本知识或者对SQL脚本有稍微的了解。我们PowerOn中用到的报表大部分都是对项目记录中的数据进行的提取。我们可以将每种报表都统一整理到“项目记录”的工具下。这类报表抽取出来的数据不是单一的针对某一个单据,而是针对所有我们可以提取的数据,这是根据我们自定义的数据源来的。下面我们还是以领料单为例。比如我们现在要提取PowerOn中所有已经发生过的材料的领用明细,包括材料编码、材料名称、材料规格、型号、领用部门、材料单价、材料单位、金额等信息。首先,我们进入到PowerOn中的“项目记录”,选择左边的“领料记录”树节点,点击工具菜单,出现如图4-1:图4-1 报表清单4.1 报表设计当然,您现在看到已经存在这么多的报表了,那是因为我用的样例数据库已经制作好了这么多的报表了。选择“网格式报表”,点击增加,出现如图4-1-1:图4-1-1 空报表模板这个和我们上章所讲过的是一样的。因为这次我们制作的报表的数据来源是自定义的,所以仅仅有这样的一个空的报表模板是不够我们应用的。我们还要添加一个能够放置自定义的数据源控件的窗体。操作如图4-1-2 :图4-1-2 添加对话框图4-1-3 出现的对话框这个对话框就是存放自定义数据源控件的容器,它还有更加强大的功能,我们慢慢将来。图4-1-4 选择TADOQuery选中Query,点击一下,然后再在对话框上点击一下,我们所需要的数据源控件就放置到了窗体上。如图4-1-5:图4-1-5 选择好控件然后添加2个按钮,方法类似控件的添加。如图4-1-6:图4-1-6 添加2个按钮这个时候,我们可以按下键盘上的“F11”键,将会出现报表的对象查看器,如图4-1-7:图4-1-7 对象查看器我们选刚才添加的其中的一个Button按钮,在对象查看器中找到“caption”属性,将第一个设置为“确定”并且将“ModalResult”设置为”MrOk”,将第二个设置为“取消”并且将“ModalResult”设置为“mrCancel”。这2个按钮主要是用户触发我们想要做的事情,如果点击确定按钮会预览我们做的报表;如果点击取消按钮,就会取消预览事件。如图4-1-8:图4-1-8 修改属性值图4-1-9 修改ModalResult值图4-1-10 将数据源控件名字改为qrydata我们还需要将“qrydata”的DatebaseName属性设置好,也就是我们的数据源头。如图4-1-11:图4-1-11 设置qrydata的DatabaseName属性到目前为止,将要制作的报表所需要用到的数据源控件以及按钮都准备完毕。现在我们切换到”Page1”页,进行我们的报表样式的设计,设计的方式参考第一章,只是要注意的是,在对数据源Band进行选择数据源的时候,选择我们刚才自己的“qrydata”。如图4-1-12:图4-1-12 设计好的报表模板4.2 报表实现报表模板也设计好了,依据我们上章的方式,现在应该是进行数据标头的字段关联了。但是,由于我们这次是从自定义数据源取数据,而我们刚才添加的控件还是一个空的数据集,里面没有任何字段,更没有任何数据。所以我们就应该是自己写脚本来获取所需要的数据了。切换到“Page2”页,选中“qrydata”,按“F11”或者是点击鼠标右键,选择“属性”,会出现刚才的“对象查看器”窗口。将“UseSqlBuilder”属性设置为“False”。如图4-2-1:图4-2-1 设置UseSqlBuilder属性设置好后,点击“SQL”属性。出现如图4-2-2:图4-2-2 SQL Designer我们可以看到,图的右上方列出了我们PowerOn中所有用到的表,双击任何一个,就会在左边出现该表的所有字段。如图4-2-3:图4-2-3 表的字段列表可以通过“Remove Table”命令移除刚才添加的表信息。在下方的空白处,我们编写SQL脚本,提取报表所需要的数据。如图4-2-4:图4-2-4 编写脚本4.3 报表预览点击上方的绿色对号,完成SQL脚本的编写。我们可以预览下效果如图4-3-1:图4-3-1 单击预览图4-3-2 预览的所有数据回到模板设计页,参照第一章,将数据标头对应的字段关联上。如图1-37:图4-3-3 数据标头字段关联图4-3-4 报表预览可以看出,PowerOn中所有发生的材料领用明细全部列举出来。这样一张报表就做好了。第五章 加载系统变量的PowerOn报表制作上章我们介绍了自定义数据源报表的简单制作方法,本章以及下章内容我们都会在上章报表的基础上进行深入设计,更多的体现PowerOn报表的功能强大性。我们PowerOn的报表制作提供了一些系统变量,我们可以直接引入这些变量,而不需要进行任何的编码工作。 比如我们要在报表上体现当前日期、当前行号、页码等。如图1-39:图5-1 支持的变量5.1 报表设计我们在上个报表的基础上,增加这些信息:当前页、当前行号、当前日期。首先在现有报表模板的基础上绘制出这些信息。如图5-1-1:图5-1-1 增加当前页、当前行号、当前日期信息5.2 报表实现 根据我们的需要,报表的样式已经绘制完成,下一步就是我们怎么能利用系统提供的这些变量,把我们需要的信息提取到报表上来。 选中日期右边的单元格,双击。如图5-2-1:图5-2-1 文本编辑器点击文本编辑器上左上角的“表达式”按钮。如图5-2-2:图5-2-2 点击“fx表达式”按钮弹出如图5-2-3:图5-2-3 表达式编辑器点击变量按钮,如图5-2-4:图5-2-4 表达式编辑器弹出如图5-2-5:图5-2-5 表达式编辑器(插入变量)我们看到的右边列出的就是我们系统所支持的变量。这里我们选择本次我们需要的变量“日期”,点击确定,再点确定,再点确定,如图5-2-6:图5-2-6 日期变量加载到报表上我们可以看到,日期变量已经加载到该报表上我们想要的位置。同样的方法,我们将序号下面的单元格加载变量如图5-2-7:图5-2-7 序号所用的变量图5-2-8 页所用的变量变量全部加载完毕后,可以看到。如图1-49:图5-2-9 变量加载完毕5.3 报表预览我们现在可以预览下报表的效果,看下我们刚才引入的系统变量会给我们带来什么意想不到的效果吧。如图5-3-1:图5-3-1 引入变量的预览效果但是,我们看到,如果预览的结果有很多页,下面的页的标头就没有了。如图5-3-2:图5-3-2 数据标头没有出来这个时候是肯定不行的,那怎么办呢?很简单!我们回到报表设计页Page1,选中数据标头行,如图5-3-3:图5-3-3 选中数据标头图5-3-4 在数据标头上鼠标右键在数据标头上点击鼠标右键,选择“在所有页重复显示”即可。再次预览如图5-3-5:图5-3-5 数据标头出现但是,我们又发现,“领料单”几个字没有了。这时,我们将原来的“标题”转换为“页标头”,如图5-3-6:图5-3-6 标题改为页标头再次预览。如图5-3-7:图5-3-7 页标头出现这样,我们在上章的基础又给我们的报表增添了重要的信息。显得我们的报表更大惹人喜欢了。第六章 带过滤条件的PowerOn报表的制作 也许到这里读者一定认为我们的PowerOn已经够强大的了,别急,下面有更强大的功能。上面我们制作的领料单的报表,在预览的时候,会出现PowerOn中所有发生过的材料的领料记录。这样的数据量是不是太大了呢?当然是的。这样的数据对用户来说意义不是很大,他们是想有条件的选择他们想看的数据。这时候怎么办呢?简单。我们PowerOn报表的制作提供了条件过滤功能。6.1 报表设计我们现在在前面报表的基础上再增加几列信息:领料单编号、领料单名称、领料日期、领料单位、领料人。修改后的报表样式如图1-56:图6-1-1 增加领料单信息图6-1-2 增加领料人信息我们现在将报表设置成此样式,领料单的信息更加完整了。6.2 报表实现我们现在的报表是基础自定义数据源的,仅仅靠我们刚才写的取数据的脚本是不够的。所以要进行修改,将刚才增加的领料单编号、领料单名称、领料日期、领料单位、领料人信息提取出来。参考第二章内容,打开我们的“SQL Designer”编辑器,如图6-2-1:图6-2-1 进行脚本更改图6-2-2 修改后脚本取数据的脚本改好后,我们刚才新增的信息也就有了。现在回过头来,将数据标头为领料单编号、领料单名称、领料日期、领料单位、领料人的相应的字段关联起来(参考第一章)。如图6-2-3:图6-2-3 新增信息已经关联需要的信息我们都已经提取出来,剩下的就是怎么样进行数据的过滤了。前面我们给报表增加了一个对话框,现在就可以将它的强大功能给展现出来。回到Page2页,也即对话框页。如果现在我们需要按照“领料部门”、“领用日期”这二个条件进行记录的过滤,那么我们就要进行如下操作:图6-2-4 添加标签对话框选择后,在对话框上进行点击。如图6-2-5:图6-2-6 标签添加成功 按“F11”,将标签的“ caption”属性设置为“领料单位”。如图6-2-7:图6-2-7 设置标签属性参考该标签的添加方法,在对话框上添加如下控件,如图6-2-8:图6-2-8 添加的过滤内容这个时候,过滤时所要用到的控件已经添加完毕。选中确定按钮,对象查看器切换到事件页,双击OnClick的下拉框,出现如图6-2-9:图6-2-9 写脚本报表工具会自动生成脚本的框架代码,用户需要的只是填入关键代码。如图本示例代码如下:图6-2-10 过滤脚本6.3 报表预览过滤的脚本前面已经写好。我们现在看下过滤的效果。如图6-3-1:图6-3-1 过滤条件输入框点击确定按钮,预览的结果就是在当前过滤条件下的结果,也就是领用日期在“2006-12-01”到“2007-01-12”之间的数据。如图6-3-2:图6-3-2 预览效果1图6-3-3 预览效果2在此日期范围的前提下,我们再加个领料单位进行过滤,如图6-3-4:图6-3-4增加领料单位过滤再次预览出来的数据就是领用日期在“2006-12-01”到“2007-01-12”之间、领料单位包含“汽机”的所有领料明细,如图6-3-5:图6-3-5 预览效果3图6-3-6 预览效果4具有强大过滤功能的报表也已经制作完毕。第七章 具有分组功能的PowerOn报表的制作上章我们简单介绍了具有过滤功能的报表制作,我们经常用到的还有按照某个字段进行分组的报表。紧接上面的报表,我们在此基础上进行按照材料类别进行分组。下面简单介绍下怎么实现按照材料类别进行分组功能。7.1 报表设计 我们将现有的报表模板做如下的修改。如图7-1-1:图7-1-1 增加分组标头行作简单的修改,如图7-1-2:图7-1-2 增加一行 我们还需要作如下的修改,如图7-1-3:图7-1-3 更改行属性点击分组标头,弹出如图7-1-4:图7-1-4 表达式点击“fx”,如图7-1-5:图7-1-5 选择分组字段 点击“字段”,如图7-1-6 :图7-1-6 选择材料类别字段点击确定、确定、确定后。同样的方法,将“材料类别”右边的单元格关联材料类别字段。如图7-1-7:图7-1-7 关联材料类别字段因为我们要按照材料类别进行分组,所以将该行设置为“分组标头”。同样,将原来的数据标头更改为“分组标头”。7.2 报表实现 我们将SQL脚本修改如图7-2-1:图7-2-1 实现脚本上面的脚本主要是修改了按照材料类别进行排序功能。7.3 报表预览下面我们看看报表的效果。如图7-3-1:图7-3-1 分组预览1图7-3-2 分组预览2我们将报表的分组栏位“材料类别”以浅蓝色的颜色显示,可以更清晰的看出分组的效果,相同材料类别的数据都集中在一起,这样更便于我们进行数据的分析。我们已经按照材料类别进行了分组,假如现在我们想在材料类别的基础上,再按照领料单位进行分组,那我们该怎么办呢?按照上面的方法,将模板设计如图7-3-3:图7-3-3 增加按照领料单位分组行如上图,我们在主项数据的上面又增加了一行“领料单位”,并且将分组字段关联为领料单位对应的字段。并且,我们将SQL脚本稍微作如下修改,如图7-3-4:图7-3-4 SQL修改上面脚本的更改,主要是将数据集在材料类别的基础上,再按照领料单位进行排序。现在我们再进行预览,看下现在的报表的效果是怎么样的,看下我们的双分组标头的预览效果。如图7-3-5:图7-3-5 双分组标头预览1图7-3-6 双分组标头预览2图7-3-7 双分组标头预览3我们将领料单位分组标头加以颜色,进行区分,再进行预览。如图7-3-8:图7-3-8 双分组标头预览4可以看到,在按照材料分类进行分组的基础上,我们又进行了按照领料单位进行分组,又可以从领料单位这个角度对数据进行分析了。第八章 具有数据汇总功能的报表数据分组功能实现了,是不是感觉还少点什么呢?我们只是简单地将同类数据进行分组显示是不能满足需求的。我们还比较关注的是在分组的基础上,再进行数据的汇总统计。汇总统计功能才算是我们报表的最终要求。不需要作太大的改动,只需要在上面报表的基础小作修改,就可以实现出具有汇总功能的分组统计报表了。8.1 报表设计我们在现有报表的基础上,再将报表模板作如下修改。如图8-1-1:图8-1-1 增加分组小计行图8-1-2 增加分组小计行2按照上面的方法,将该行的属性设置为“分组注脚”。如图8-1-3:图8-1-3 更改行band属性图8-1-4 更改行band属性后的报表模板到这里,我们要用到的报表的模板已经定制完成。下面就是具体的实现。8.2 报表实现 PowerOn的报表不但可以支持系统变量,而且还可以支持系统函数功能。支持的函数如图8-2-1:图8-2-1 支持的函数选择左边相应的函数类型,右边会列出支持的函数,下方会显示出该函数的格式。如图8-2-2:图8-2-2 函数格式显示 下面我们看该报表的数据分组汇总功能是如何实现的。双击“小计”右边的单元格,如图8-2-3:图8-2-3 双击该单元格双击后,出现如图8-2-4:图8-2-4 文本编辑器框点击“表达式”,出现如图 8-2-5:图8-2-5 表达式编辑器 点击“fx”函数,如图8-2-6:图8-2-6 选择函数框这次我们要做的时候分组的汇总功能,所以我们在左边的框中选择“统计”,在右边会出现统计支持的函数。我们选择“sum”,如图8-2-7: 图8-2-7 选择函数“Sum”点击“继续”,如图8-2-8:图8-2-8 选择应用该函数的字段我们选择了“sum”函数,下面要选择应用该函数的字段了,点击“数字型”旁边的按钮,如图8-2-9:图8-2-9 表达式编辑器按照上面的方法,选择要进行数据统计的字段。图8-2-10 小计字段关联好从我们上面操作的步骤可以看出,不需要更改任何的SQL以及代码,就轻松实现了数据的分组汇总。可见PowerOn制作报表的功能强大性。8.3 报表预览我们预览下分组汇总的效果。如图8-3-1:图8-3-1 分组汇总预览1图8-3-2 分组汇总预览2图8-3-3分组汇总预览3从分组汇总的结果已经可以看出,报表实现了按照材料分类进行金额小计汇总的功能。我们还可以根据实际需要,进行其他栏位的分组汇总。 分组汇总的小计有了,我们现在还可以实际所有记录的一个数据合计功能。简单的将报表模块修改(具体修改方法,参照上章)如图8-3-4:图8-3-4 修改后的报表模板要注意一点的是,要将合计行的band属性设置为“总结”,将合计右边的单元格的内容设置和小计右边单元格相同的内容。图8-3-5 填充要汇总字段我们现在预览一下合计的效果。如图8-3-6:图8-3-6 数据合计效果合计的结果是所有金额的总和。第九章 传递动态参数的PowerOn报表的制作我们在进行一些比较复杂报表实现的时候,常常需要动态的传进SQL里面一些参数,来进行数据的提取。恰恰,我们的PowerOn报表的制作也支持动态参数的传递。这样可以更自由的根据需要提取报表数据了。我们还以上面的报表为例子,介绍下如何应用动态参数传递。9.1 报表设计 报表模板是不需要改变的,我们只是改变参数的传递。9.2 报表实现打开报表设计期的Page2页,如图9-2-1:图9-2-1 调出SQL编辑器图9-2-2 调出SQL编辑器将SQL脚本修改如图9-2-3:图9-2-3 加入动态参数SQL脚本中增加了:p1和:p2参数,我们要对这两个参数进行动态传值,以获取我们想要的数据。我们需要增加两个自定义变量进行给这两个参数进行赋值。如图9-2-4:图9-2-4 打开数据字典图9-2-5 数据字典图9-2-6 添加变量目录图9-2-7 添加变量目录上面增加了变量目录“参数值变量”,再添加我们需要的两个变量。如图9-2-8:图9-2-8 新建变量建立如下两个变量:图9-2-9 新建变量 在这里我们稍微插入一点数据字典的概念。切换到第二页,如图9-2-10:图9-2-10 字段别名我们可以在字段别名页进行维护字段的含义,比如我们将上图选中的数据集添加到右边,并维护每个字段的含义。如图9-2-11:图9-2-11 字典维护当数据字典维护好后,我们还可以进行导出数据字典,以方便以后导入应用。回过头来,我们继续对我们的参数进行赋值操作。图9-2-12 参数设置点击后如图9-2-13:图9-2-13 参数框上图左边框中,就是我们刚才添加的两个参数:p1和p2,可以根据实际需要选择右边的数据类型,我们这里选择“DateTime”,因为我们是要将起始和结束日期作为参数传进来的。下面有对这两个参数赋值的两种方式:值、从主数据集赋值。我们选择从值进行赋值,点击“fx”按钮,如图9-2-14:图9-2-14 表达式编辑器点击变量,如图9-2-15:图9-2-15 参数对应变量分别将我们的两个参数对应两个变量。图9-2-16 参数对应变量我们现在再给刚才自定义的两个变量进行赋值,赋值后就可以直接传入到参数里了。修改脚本页代码如图9-2-17:图9-2-17 更改脚本给我们自定义的变量赋值,变量再绑定在了参数上。这样我们通过选择对话框上的日期,就可以将日期灵活的传递到SQL脚本中,取出我们想要的数据。9.3 报表预览 我们预览下2006-12-20到2007-01-01之间的数据,看看是不是我们想要的效果。如图9-3-1:图9-3-1 设置过滤条件图9-3-2 预览1从预览的结果中我们可以看到,动态参数和我们前几章的直接过滤效果是一样的,只不过在某种情况下,动态参数更加灵活。第十章 逐格填充数据的PowerOn报表的制作 有些报表我们是没有办法通过直接跟数据集字段关联取数据的。我们先看这样一个报表。如图10-1:图10-1 统计报表上图的统计报表,左边的一列,是固定不变的,而且是层层汇总的。全部职工合计=固定职工+合同制职工+临时职工;工人工人+合同制工人+临时工人像这样一个及其复杂的报表,我们是没有办法通过直接关联数据集取数据了,只能是将每个单元格的数据都通过代码提取出来,然后再进行逐格的填充数据。或者是还有另外一个比较麻烦的方法,就是将整个报表的样式形成一个中间表,表的结构和报表样式一样,每次运行报表的时候,将所需要的数据更新到中间表。这种方法相对比较麻烦的。我们下面简单介绍下怎么样进行将每个格的数据提取出来,又是怎么样进行逐格进行填充的。10.1 报表设计我们还以上面的统计报表为例。将报表样式设计如图10-1-1:图10-1-1 报表样式在这个报表预览打印的时候,我们需要实现这样的一个功能:我可以选择任何几个部门进行组合查询预览,并且同时可以任何人员类别进行联合组合进行预览打印。靠我们前面讲到的过滤方式是不好实现的,因为我们前面的不能实现任意条件的组合。如图10-1-2:图10-1-2 对话框窗体我们这里可以任意的进行部门和薪资类别的组合查询。怎么样实现这样复杂的查询呢?下面我们详细介绍。在对话框上添加如图10-1-3:图10-1-3 对话框的设计其中左边的checklistbox是部门的多选择box,右边的是薪资类别的多选择box,这两个控件的数据都是动态获取的。10.2 报表实现 我们首先看对话框上的部门和薪资类别数据是怎么动态填充进来的。如图10-2-1:图10-2-1 事件关联双击“OnActivate”,系统自动切换到脚本页,我们在OnActivate(也即对话框激活的时候)实现对部门和薪资类别的获取填充,编写脚本如图10-2-2:图10-2-2 填
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南许昌市东城区招聘工作人员6人笔试考试备考题库及答案解析
- 2025年度东北石油大学公开招聘“归鸿学者”支持计划人选考试笔试备考题库及答案解析
- 2026江西新余市市直及县区重点中学招聘部属公费师范生53人笔试考试备考题库及答案解析
- 2026国网安徽省电力有限公司招聘935人考试笔试模拟试题及答案解析
- 招标文件货物质量保障措施详解
- 种植系统技术介绍与应用
- 2025中国药科大学基建后勤处工作人员招聘2人笔试考试参考题库及答案解析
- 工程招投标与合同管理在线考试题库
- 2026届江西省临川实验学校高三化学第一学期期中统考试题含解析
- 2025年商丘工学院附属兴华学校招聘教师笔试考试参考题库及答案解析
- 经历是流经裙边的水
- 信息技术说课公开课一等奖市赛课获奖课件
- 工程整改通知单问题整改通知单
- 2023年江苏无锡市江阴市江南水务股份有限公司招聘笔试题库及答案解析
- GB/T 26465-2021消防员电梯制造与安装安全规范
- 初中数学思维能力的培养
- 迈瑞天地人血培养基础介绍
- 工程质量保修期满确认书
- 矩阵论及其应用-1 chapter1课件
- 科技论文写作课件
- PI形式发票模板
评论
0/150
提交评论