分享
 
 
 

Delphi 7 中使用RAVE报表(五)

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Delphi 7 中使用RAVE报表(五)

——和数据库连接的报表

以access数据库为例,先新建一个数据库,建立一张表包括的字段为:{[name]、[sex]、[age]、[province]},添加数据,当然不要太少了。

首先,我们不考虑Delphi程序的调用,打开rave新建一个report;

1.[File]àNew Data Objectà选择Use Connection String。选择[Microsoft Jet 4.0 OLE DB Provider],选择保存的数据库的位置并测试连接成功。[ok]后,看到报表设计导航区的Data View Dictionary增加了Database1;

2.[File]àNew Data Object Driver Data View 选择Database1 [Finish] 弹出Query Advenced Designr,将Query Advenced Designr的Tables栏的数据表拖放到layout中à[ok]à看到报表设计导航区的Data View Dictionary增加了DriveDataView1,扩展后可以看到数据字段;

3.选[Tools]àReport WizardsàSingle Table 选DriveDataView1,选择数据库字段Report Title改为“个人情况报表”。好了之后,可以看到在page中生成了报表。

4.按[F9]或者快捷按钮[Execute Report],你就可以看到连接到数据库的报表了,rave报表根据数据量的多少自动分页。根据需要更改格式,再预览,直到是你所想要的报表格式。

这时候就很简单的完成了一张报表,当然有些人也许很看到这样设计出来的报表的标题在报表的第一页显示了后,在其他页并没有显示。

怎么样让标题在每一页显示呢?

选到TitleBand,在设置BandStyle在Print Occurrence把New page打勾选中,这样在预览你就会发现,这时生成的报表每一页都会有标题。

当然,我们的报表时用程序调用的,那么我们在delphi中来设计连接数据库的报表。

1.新建工程,在窗体上放置以下组件:RvProject,RvSystem,RvDataSetConnection,ADOConnection,ADOTable,DataSource,Button,DBGrid。设置相应的数据库连接可以看到在DBGrid中显示了数据,具体的设置在这里不进行讲解了,请参考相应的数据库书。RvSystem1的Engine为RvSystem1,RvProjectFile选择保存了的为*.Rav文件。RvDataSetConnection1的DataSet属性设置为:ADOTable1。

2.打开Rave设计器打开*.Rav文件。

3.[File]àNew Data ObjectàDirect Data Viewà选择RvDataSetConnection1,[Finish]看到报表设计导航区的Data View Dictionary增加了DataView1,扩展后可以看到数据字段;

4.利用前例步骤3,同样的方法,进行报表的可视化设计。在可视化设计时,注意看生成的简单数据库代码的组成部分,注意TitleBand,DataBand, Band的属性设置。当然我们也可以不用Report Wizards自动生成也可以自己来根据需要直接做报表。步骤是:

1)添加组件页的Region组件,来描述报表的范围。

2)添加Band,Band, DataBand组件,设置相应的BandStyle 和Dataview属性。

3)在DataBand中添加,DataText选择其Dataview属性和DataFile属性。

4)预览即可,如果不能正常显示,注意查看属性的设置,尤其是Dataview属性,同时可以与Report Wizards自动生成的报表进行对比。

5.添加如下代码:

procedure TForm1.Button1Click(Sender: TObject);

begin

RvProject1.Open ;

RvProject1.ExecuteReport('Report1');

RvProject1.Close ;

end;

6.运行后,点击[确定]按钮,既显示报表设置窗体,确定后可以看到你想要得窗体。

关于和数据库连接报表的一些问题:

1)上面的例子是直接从数据库输出的报表,如果要输出的报表是根据用户的条件输出,怎么办?

如果是要根据用户的条件输出相应的报表,使用Query组件,当然要是涉及到存储过程的操作,也是一样的阿。选择相应的数据库访问组件,将RvDataSetConnection的Dataset属性连接到数据库访问组件即可。

2)我在数据库表中的字段是中文的,在Rave中连接数据库,DataView不能显示我的字段,并且提示“DataView1已经存在!” ,怎么办?

出现这样的问题主要是DataView1的name属性不支持中文名,而不能根据数据段名来命名,你将DataView1更改为相应的英文名,更改Fieldname为响应的字段中文,刷新DataView,还会有提示,同样更改name和Fieldname属性,直到你要的字段都更改好为止。

3)默认的报表时竖排的,怎么样才能将页面设置为横向的?

关于页面的设置请注意熟悉RvSystem的属性。

RvSystem1.SystemPrinter.Orientation :=poLandScape; //页面为横向的

RvSystem1.SystemPreview.FormState := wsMaximized; //预览窗体最大化

RvSystem1.SystemPreview.MarginPercent :=3; //报表页面据预览窗体的边距。

当然还有很多的设置TitleSetup,TitleStatus,TitlePreview属性可以将你的报表设置,报表预览的窗体的标题改为你想要的。当然我们最基本的是要改为中文的阿。关于怎么让你的报表预览,报表设置窗体为中文的我在后面会专门介绍。

(ps:转载请注明作者--高速公路上的鱼(cyq))

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有