一新建一个数据库 以access数据库为例先新建一个数据库建立一张表包括的字段为{[name][sex][age][province]}添加数据当然不要太少了
首先我们不考虑Delphi程序的调用打开rave新建一个report
.[File]àNew Data Objectà选择Use Connection String选择[Microsoft Jet OLE DB Provider]选择保存的数据库的位置并测试连接成功[ok]后看到报表设计导航区的Data View Dictionary增加了Database
.[File]àNew Data Object Driver Data View 选择Database [Finish] 弹出Query Advenced Designr将Query Advenced Designr的Tables栏的数据表拖放到layout中à[ok]à看到报表设计导航区的Data View Dictionary增加了DriveDataView扩展后可以看到数据字段
.选[Tools]àReport WizardsàSingle Table 选DriveDataView选择数据库字段Report Title改为个人情况报表好了之后可以看到在page中生成了报表
.按[F]或者快捷按钮[Execute Report]你就可以看到连接到数据库的报表了rave报表根据数据量的多少自动分页根据需要更改格式再预览直到是你所想要的报表格式
这时候就很简单的完成了一张报表当然有些人也许很看到这样设计出来的报表的标题在报表的第一页显示了后在其他页并没有显示
怎么样让标题在每一页显示呢?选到TitleBand在设置BandStyle在Print Occurrence把New page打勾选中这样在预览你就会发现这时生成的报表每一页都会有标题
二设计连接数据库的报表
当然我们的报表是用程序调用的那么我们在delphi中来设计连接数据库的报表
新建工程在窗体上放置以下组件RvProjectRvSystemRvDataSetConnectionADOConnectionADOTableDataSourceButtonDBGrid设置相应的数据库连接可以看到在DBGrid中显示了数据具体的设置在这里不进行讲解了请参考相应的数据库书RvSystem的Engine为RvSystemRvProjectFile选择保存了的为*Rav文件RvDataSetConnection的DataSet属性设置为ADOTable
打开Rave设计器打开*Rav文件
[File]àNew Data ObjectàDirect Data Viewà选择RvDataSetConnection[Finish]看到报表设计导航区的Data View Dictionary增加了DataView扩展后可以看到数据字段
利用前例步骤同样的方法进行报表的可视化设计在可视化设计时注意看生成的简单数据库代码的组成部分注意TitleBandDataBand Band的属性设置当然我们也可以不用Report Wizards自动生成也可以自己来根据需要直接做报表步骤是
)添加组件页的Region组件来描述报表的范围
)添加BandBand DataBand组件设置相应的BandStyle 和Dataview属性
)在DataBand中添加DataText选择其Dataview属性和DataFile属性
)预览即可如果不能正常显示注意查看属性的设置尤其是Dataview属性同时可以与Report Wizards自动生成的报表进行对比
添加如下代码
procedure TFormButtonClick(Sender: TObject);
begin
RvProjectOpen ;
RvProjectExecuteReport(Report);
RvProjectClose ;
end;
运行后点击[确定]按钮既显示报表设置窗体确定后可以看到你想要得窗体
三关于和数据库连接报表的一些问题
上面的例子是直接从数据库输出的报表如果要输出的报表是根据用户的条件输出怎么办?
如果是要根据用户的条件输出相应的报表使用Query组件当然要是涉及到存储过程的操作也是一样的阿选择相应的数据库访问组件将RvDataSetConnection的Dataset属性连接到数据库访问组件即可
我在数据库表中的字段是中文的在Rave中连接数据库DataView不能显示我的字段并且提示DataView已经存在! 怎么办?
出现这样的问题主要是DataView的name属性不支持中文名而不能根据数据段名来命名你将DataView更改为相应的英文名更改Fieldname为相应的字段中文刷新DataView还会有提示同样更改name和Fieldname属性直到你要的字段都更改好为止
默认的报表是竖排的怎么样才能将页面设置为横向的?
关于页面的设置请注意熟悉RvSystem的属性
RvSystemSystemPrinterOrientation :=poLandScape; //页面为横向的
RvSystemSystemPreviewFormState := wsMaximized; //预览窗体最大化
RvSystemSystemPreviewMarginPercent :=; //报表页面据预览窗体的边距
当然还有很多的设置TitleSetupTitleStatusTitlePreview属性可以将你的报表设置报表预览的窗体的标题改为你想要的当然我们最基本的是要改为中文的阿关于怎么让你的报表预览报表设置窗体为中文的我在后面会专门介绍