最近刚刚做完一个项目
使用到了RAVE进行报表设计
在使用中也查阅了很多资料
但总觉得网上的资料过于分散
而且都不是很全面
所以决定将如何在Delphi
中使用RAVE报表写成几篇文章
由于本人从小语文学得不好
不是写作高手
这次也是第一次写这样的文章
希望看到这篇文章的网友能多提意见
欢迎大家指教
可以给我留言
言归正传在我们要给用户编写的软件中往往需要生成各种各样的报表报表是数据库中数据的最终表现形式在Delphi 以前编写报表都在使用Qusoft公司的Quick report而且在Delphi中集成了Quick report 在Borland Delphi; Studio 集成开发环境(IDE)的控件面板中取消了Quick report项取而代之以Nevrona公司Rave Reports项且在Tools中有Rave Designer
打开Rave Designer 我们可以如图所示的一个报表设计界面开发人员可以开发出符合用户要求的报表来而且这个报表的设计使用与Delphi集成开发环境几乎是完全的一样这可能是Rave与其它的报表组件最大的外观上的不同
我在使用中下载了Rave Reports v你可以在http://wwwnevronacom/ 或者http://wwwdelphiboxcom/ 下载在写这篇文章时http://wwwnevronacom/上已经发布了Rave Reports 不过文章还是以Rave Reports v为准打开Delphi可以控件面板看到如图
Delphi下的Rave
打开Tools中的Rave看到的报表设计界面如图
Rave的报表设计界面
一Rave的报表设计界面
首先介绍一下Rave的报表设计器的各组件和相关的属性Rave Designer集成开发环境的界面包括标题栏菜单栏快捷工具栏组件栏和一些窗口
·标题栏显示了当前的工程名位于最上部
·菜单栏一些功能可通过菜单栏的菜单命令实现
·快捷工具栏为位图按钮一些常用的菜单命令用这些按钮实现
·报表组件栏分页显示各种组件(StandardReportZoomColorsLinesFillsFontsDrawingBar CodeAlignment)在利用Rave开发应用程序的过程中正确合理地使用组件非常重要用它可设计基于数据库和文本的复杂报表
·左边半部分像Delphi的object inspector工具可设置报表元件的属性它的下部分有对应属性的简短提示
·正中部分为设计区域开发者可在上面添加各种设计元件如Drawing的横线直线矩形椭圆Barcode中各种常用的条码Standand 中的TextMemoSectionBitmapMetafile等等
·右边为设计导航区可查看报表的各元件的更多信息如报表库和数据显示目录设计时也可快速定位元件位置
二Rave的报表设计器组件栏的各组件
1Drawing (绘图) 组件页
Line component 画线组件所画的线较灵活 可以看到其属性入图有颜色线宽线行等属性设计者根据需要更改属性改变线的长短位置选中线条后选择一个端点则光标会变为十子型拖动即可
Hline component 画水平线组件
Vline component 画垂直线组件
Rectangle component 画长方形组件可以使用fill组件填充
Square component 画正方形组件可以使用fill组件填充
Ellipse component 画椭圆组件可以使用fill组件填充
Circle component 画圆形组件可以使用fill组件填充
2Bar Code(条形码)组件页
PostNetBarCode 打印邮件标签上包括 POSTNET 条码
IofBarCode 打印 Interleaved of 条码
CodeBarCode 打印standard and extended Code 条码
CodeBarCode 打印 A B and C Code 条码
UPCBarCode 打印 UPC条码
EANBarCode 打印 EAN条码
3Standard(标准)组件页
Text 这个组件是在报表上固定的文字例如报表的标题等可以设置字体的大小颜色Rotation属性可以使要显示的字为任意角度
Memo Memo组件提供了多行文本的文字与delphi中的相似属性很多但我们应用的不多可以使用text属性添加文本
Section 这个组件是其他组件的容器将其他组件固定在此组件中
Bitmap 这个组件是在报表中放置bmp文件 (*bmp) FileLink属性连接bmp文件
MetaFile 这个组件在报表中放置meta文件 (*wmf)FileLink属性连接meta文件
FontMaster 这个组件控制报表中的任何的text字的属性在要使用该字体的text组件或memo组件的fontmirrot属性选择FontMaster
PageNumInit :报表显示页码的初始页码如图的InitValue的值为则报表的初始页为页码从5开始
4Report(报表)组件页
如果报表需要的是数据库的数据则这个组件页中的组件使用比较频繁
DataText用来显示数据库中内容比较短的信息要用它显示相应的数据库字段信息则要使用到DataField 和DataView两个属性用来连接数据库和字段DataText用来设计主从报表时LookupDataView是相应的数据连接LookupDisplay是显示内容LookupField是主报表相应的数字段进行关联的字段的内容也就是主数据字段进行连接的字段LookupInvalid是控制相应错误产生后的情况
DataMemo在Memo的基础上支持了数据库的字段显示 使用DataField 和DataView两个属性用来连接数据库和字段除了输出相应的文本内容外还可以输出RTF格式显示RTF格式需要设置ContainsRTF属性为True
CalcTex这个组件用来统计报表字段的最大值最小值总和统计值等内容直接使用只需要通过CalcType属性来设置CalcType属性包括了ctAverage(求平均值)CtCount(求个数)ctMax(求最大值)ctMin(求最小值)ctSum(求累加和)
DataMirrorSection和Section组件相似
Region如果要进行报表的打印Region组件规定了打印区域可以设置Columns来分栏
Band这个组件算是一个容器组件包括textMemo组件等包括的是非数据库库信息Band组件要放置在Region中选择BandStyle属性后出现如下图的属性对话框左边为报表中Band的列表右面的PrintLocation包括Body Header(页眉)Group Header(组眉) Row Header(行眉)Detail(表体)Row Footer(行脚)Group Footer(组脚) 和Body Footer(页脚)BandStyle属性可以多选Print Occurrence属性包括 First(首页打印)New Page(打印新一页)New Column(新分栏)选择First(首页打印)也就是Band包括的内容只在第一页打印选择New Page(打印新一页)Band包括的内容必须在新的一页打印选择New Column(新分栏)Band包括的内容必须在新的分栏中打印
DesignerHide属性当一个报表有多个Band时选择查找Band变得比较麻烦设置DesignerHide属性为True时没有选择到的Band内容被隐藏
GroupDataView 和GroupKey属性如果想要以相应的数据结果作为报表分组的依据那么就必须设置这两个属性GroupDataView是相应的数据源GroupKey是数据源的索引分组是靠GroupKey中的值进行分组的
DataBand是直接作用于数据库且可以在其中摆放相应数据库报表组件这样通过它就可以让相应的报表具有数据库书库打印功能其中DataView属性是设置相应的数据源GroupDataView是相应的报表中的分组数据源
DataCycle与DataBand相似的地方在于循环的显示数据DataBand是数据库内容的循环打印而DataCycle不需要使用Region它打印的区域为页面每页只能打印一个组件设计好的内容使用DataBand是根据Region的范围来分页而DataCycle则是每一页只现实一条信息根据数据的多少分页
CalcOp该组件提供了报表相应的计算功能具体的使用会在以后讲解
CalcTotal与CalcOp结合使用来完成日常报表的统计功能
5Zoom(缩放)组件在设计报表时放大缩小报表页面
6Colors(颜色)组件对选择的对象快速的设置颜色
7Lines(线型)组件对于选择的线更改其线型
8Fills (填充)组件对于正方形等图形填充样式
9Fonts(字体)组件进行字体的设置
10Alignment(队列)组件调整对齐组件和组建的层次