Delphi 7.0 中实现报表的方法称为 Rave。Rave 报表是一种基于组件的可视化
报表设计工具,使用它可以简化设计过程,提高设计效率。只要将 Rave 报表组件添
加到应用程序中后,就可以创建各种类型的报表。本文将以 ADO 组件连接数据库,
向读者介绍怎样利用 Rave Report5.0 快速设计报表。

还是赶快行动起来,体验一下 Rave Reports 的强大功能吧!

1.准备好范例数据库,笔者使用 Access 建立数据库Student.mdb,创建一个表:
StuInf(学生基本信息),包含Sno(学号),Sname(姓名),Sex(性别),Class(班级),
Birthday(出生日期)... 等字段,所有字段名先使用括号中的中文;再写入几条数据
备用。
2.启动 Delphi7.0 建立一个工程,在窗体上放置一个 ADOQuery 控件,设置其
ConnectionString 属性,连接数据库 Student,设置 SQL 属性为“select * from
StuInf;”,Active 属性为 True 。为了能看到库中的数据,再往窗体上放置一个
DBGrid 和一个 DataSource ,设置相关属性,使 DBGrid 中显示数据。
3.在窗体上添加一个 GroupBox,设置其 Caption 为“选择报表式样”;往其中
添加两个 RadioButton ,Caption 分别为“条列形式”、“表格形式”;往窗体上
添加一个按钮,Caption 为“显示报表”。

现在,准备工作已经完成了,保存工程,下面开始报表的设计。

4.在窗体上添加一个RvDataSetConnection组件,设置其DataSet为ADOQuery1,
这样,就提供了 Rave 报表与数据源之间的连接。
5.在 Delphi 主菜单的 Tools 中选择 RaveDesigner 启动 Rave Reports5.0。

我们可以看到,报表设计器的界面与Delphi非常像,左上角是各种工具栏按钮,
右上方是组件面板,左侧是属性窗,右侧是项目管理窗,中间则是可视化的设计窗。
利用它设计报表完全是可视化的,通常在它的组件面板上直接将报表界面组件托放到
中间的设计窗上,能在左侧的属性窗口中设置这些界面组件的属性,从而改变它的外
观,设置完后还可以打印御览。
我们在系统自动生成的报表页上放置一个Text Component(在Standard面板上),
可以随意拖动,改变它的位置。右键单击它,弹出菜单,点击cut,copy,delete 等
按钮,好像都不起作用!在右侧项目管理窗中右键单击控件的名字,竟然不会弹出菜
单!这一点与 Delphi 相比可是太不方便了!我们必须使用键盘快捷键才能实现上述
操作。
在利用报表设计器创建报表的时候,首先需要创建数据视图,然后基于所创建的
数据视图设计报表,下面就来创建数据视图。

6.选择[File/New Data Object]菜单项,在系统弹出的对话框中选择 Direct
Data View ,点击 Next,然后选中 RvDataSetConnection1(DT),点击Finish。

是不是这样就搞定了呢?谁知系统弹出错误消息框,“ A component named
DataView1 alreadly exists.” 明明没有创建 DataView1,为什么说 DataView1
已经存在呢?笔者经过几次试验,终于找到了问题之所在。还记得我们使用的数据表
吗?所有字段都是中文的,请试者将刚刚创建失败的 DataView1的 Name 属性改成
随意的汉字,又将得到错误消息框,”name” is not a valid component name.
看来,在由 Rave Reports创建的视图和其所有字段名中使用汉字是不合法的。因此
系统在创建视图遇到不合法字段时,自动将其名称定为DataView1,当数据表中有多
个字段时,名称都是 DataView1,当然会提示它已经存在了。
好了,删除已经创建的 DataView1,把 StuInf 表中所有的字段都改成英文的,
重复第6步,一切搞定!在项目管理窗中点击 DataView1左侧的”+”,将会看到所有的
字段,只是在原字段名前都加上了“DataView1”,即DataView1Sno,DataView1Sname
等等,当然,你还可以修改它们的 Name 属性。

数据视图已经创建成功,下面开始报表界面的设计。先来设计行式显示的报表。

7.新建一个报表页,选择 Zoom 面板,点最右边的一个按钮以看到整个报表页,
这样有利于设计。
8.在页面的上方放置一个 Text 组件,点其 Font 属性,设置字体样式,再将其
Text 属性置为 ”学生基本信息”,作为表头。
9.选 Report 面板,放一个 Region 组件到报表页上,调整其大小和位置。
10.在 Region 上放一个 Band 组件,在 Band 上放一个 Text 组件,设置其
Text 属性为“学号”。再放置几个 Text,设置它们的 Text 属性分别为其他几个字
段的中文名称,适当调整它们的位置,不要超出 Band1 的白色区域。
11.在 Report 面板上选 DataBand 放到 Region 上,设置其 DataView 属性
为 DataView1。
12.在 DataBand 上放一个 DataText 组件,设置其 DataView 属性为
DataView1,DataField 属性为 Sno;再往 DataBand 上放几个 DataText 组件,
设置它们 DataView 属性为 DataView1,DataField 属性分别为剩下的几个字段。
调整它们的位置,不要超出 DataBand1 的白色区域。

点工具栏按钮上的 Execute Report,看看刚刚设计出的报表怎么样吧!如果不
满意,继续调整各个控件的位置和字体,直到满意为止,保存文件,命名为 Rave1.
我们再来设计表格形式的报表,这次就简单的多了!

13.重复7,8,9,6,11步骤,选择 Drawing 面板,这里的组件是专门用来绘
制各种图形的。调整 DataBand 的大小,选择合适的组件,在 DataBand 上绘制你
想要的图形,调整它们的布局,与 10,12 步一样的道理,添加各种组件并设置其
相关属性,御览报表,直到满意时保存文件,命名为 Rave2.

接下来,我们往主程序中添加代码。

在窗体上添加一个 RvProject 组件,在 Button1 的 On Click 事件中加入
以下代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
Try
if RadioButton1.Checked then
begin
RvProject1.Close;
RvProject1.ProjectFile:=’Rave1.rav’;
RvProject1.Open;
RvProject1.Execute;
end
else if RadioButton2.Checked then
begin
RvProject1.Close;
RvProject1.ProjectFile:=’Rave2.rav’;
RvProject1.Open;
RvProject1.Execute;
end
else
ShowMessage(’请选择报表式样 !’);
Except
Exit;
End;
end;

在 Form1 的 OnCloseQuery 事件中添加代码:RvProject1.Close; 调用
RvProject 的 Open 方法后,必须调用 Close 方法关闭报表项目文件,并从内存
中卸载。
好了,保存工程,运行程序看看效果如何吧,是不是很酷呀?看来,制作报表
也不是什么困难的事。到这儿,相信读者在报表制作上已经入门了,其实 Rave
Reports 5.0 的功能远不止这些,利用它,可以实现许多功能,比如带字回绕,
图形化,精确页面位置控制等等,掌握它,可以制作出漂亮,复杂,高度个性化
的报表,这些就留给读者自己探索吧。

注意事项:
1.数据表要使用英文字段;
2.Text 和 DataText 不能自动换行,若数据太长,使用 Memo 和 DataMemo
组件。

以上是转载别人的

自己的一点心得

如果想控制报表的显示,在界面上加一TRvSystem组件,然后把RvProject组件的Engine属性
设为TRvSystem,设置TRvSystem组件的相关属性,即可控制报表的显示,比如直接预览报表,显示最大化等。  
posted on 2009-08-26 08:56  yxbsmx  阅读(1270)  评论(0编辑  收藏  举报