Rave Reports概述Word文件下载.docx

上传人:b****3 文档编号:17271798 上传时间:2022-11-30 格式:DOCX 页数:18 大小:24.97KB
下载 相关 举报
Rave Reports概述Word文件下载.docx_第1页
第1页 / 共18页
Rave Reports概述Word文件下载.docx_第2页
第2页 / 共18页
Rave Reports概述Word文件下载.docx_第3页
第3页 / 共18页
Rave Reports概述Word文件下载.docx_第4页
第4页 / 共18页
Rave Reports概述Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Rave Reports概述Word文件下载.docx

《Rave Reports概述Word文件下载.docx》由会员分享,可在线阅读,更多相关《Rave Reports概述Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

Rave Reports概述Word文件下载.docx

Reports储存在报表项目的报表库中。

一个Rave报表由报表页面和储存在这些页面的可视报表组件组成。

你可以随意创建许多页面定义,然后在各种方法中

组合它们。

5.GlobalPages

GlobalPages储存在报表项目的GlobalPages分类中,组件包含在GlobalPages上,不象其他那些报表页面里面的组件,它们对于所有报表都是可见的。

GlobalPages

对于储存模板用于其他报表页面非常有用。

6.DataViews

DataViews储存在报表项目的DataViewsDictionary中。

DataViews给提供数据连接组件提供一个接口。

当创建新的DataViews时,你必须有活动的数据

连接组件在正在运行的应用程序中或者在一个已加载的Delphi或C++Builder表单上。

DataViews然后将让数据连接组件去检索元数据(meta-data)信息比如字段名,

数据类型,等等。

字段组件包含在每个DataViews中,可用来设置每个数据列的属性。

RaveReports初步入门

你可以在VCL或CLX应用程序中使用RaveReports去实现来自数据库或非数据库数据的报表.下面的过程说明

怎样增加一个简单的报表到已存在的数据库应用程序中.

1.在Delphi中打开一个数据库应用程序.

2.从组件面板的Rave页,假如TRvDataSetConnection组件到应用程序的表单.

3.在ObjectInspector中,设置DataSet的属性为一个已在你的应用程序中定义的dataset组件.使用RaveVisualDesigner

4.去设计你的报表然后并创建一个reportproject文件(.ravfile).

选择Tools|RaveDesigner运行RaveVisualDesigner.

选择File|NewDataObject显示DataConnections对话框.

在DataObjectType列表,选择DirectDataView然后单击Next.

在ActiveDataConnections列表,选择RVDataSetConnection1然后单击Finish.

在RaveVisualDesigner窗口左边的ProjectTree中,展开DataViewDictionary结点,燃后展开刚创建的DataView1结点.

你要使用的数据字段显示在DataView1结点下.

选择Tools|ReportWizards|SimpleTable显示SimpleTablewizard.

选择DataView1然后单击Next.

选择你想要在这个报表中显示的两个或三个字段然后单击Next.

按照随后的向导页提示区设置要在这个报表中使用的字段的排序,页边距,首部文本,以及字体.

在最后向导页上,单击Generate完成这个向导然后在页面设计器中显示报表.

选择File|Saveas显示SaveAs对话框.把Raveproject存到你的Delphi应用程序的目录下并命名为MyRave.rav.

最小化RaveVisualDesigner窗口返回Delphi.

5.从组件面板的Rave页,添加一个项目组件TRvProject到表单.

6.在ObjectInspector,设置ProjectFile属性为刚才创建的reportproject文件(MyRave.rav).

7.从组件面板的Standard页,添加TButton到表单.

8.在ObjectInspector,单击Events标签然后双击OnClick事件.

9.在事件处理程序中使用ExecuteReport方法去执行Raveproject组件.

10.按F9运行应用程序.

11.单击在第七步添加的按钮.

12.OutputOptions对话框被显示出来,单击OK显示报表.

Rave报表介绍之二:

可视报表设计器

可视报表设计器

Rave有自己的可视报表设计器,以自己的文件格式保存报表。

这有一些优势,你可以把报表

独立于应用程序之外,可独立进行升级,甚至可以通过网络进行更新,或者使用Nevrona的

RaveReportServer。

当然,你也可以把报表保存为标准的DFM文件格式。

为了启动可视报表设计器,防止一个TRvProject部件在form上,这个TRvProject部件将是你

的应用程序和你即将要创建的报表的联系。

如果需要,可加一个TRvSystem部件到窗体上,

通过设定RvProject的Engine属性与它挂接。

RvSystem部件是作为一个通用的报告系统配置

部件:

可通过它设置将要使用的打印机,边界,页数等等。

为了开始一个新的报表项目,双

击RvProject部件,或者通过敏感菜单选择"

RaveVisualDesigner..."

一个Rave项目文件将可能由多个报表组成。

通过全局页面(GlobalPages)可以保存一些报表

间共享的品项。

如果一个属性从缺省值改变为特定值,在属性编辑器中会显示成粗体。

当在可视报表设计器设计好报表后,返回到delphi的IDE中,改变RvProject部件的

ProjectFile属性为你刚才完成并保存的报表文件名。

为了运行报表,加一个调用RvProject

对象的Execute方法的过程即可。

如果我们设计的报表项目中只有一个报表,我们仅仅调用RvProject.Execute即可。

如果我

们的报表项目中有多个报表,我们不得不在调用Execute前,调用SelectReport来选择特定

的报表,或者调用直接调用ExecuteReport方法。

与报表项目进行交互

参数(Parameters)

参数可以存在于报表项目,报表,报表页面这三个地方,可通过对应对象的parameters属性

进行设定。

你仅能通过报表项目的对象树来选择报表项目和特定的报表。

对于报表页面可以通过报表项

目的对象树或页面设计的标题来选择。

参数可通过DataText部件来输出。

在页面上加一个DataText组件,打开属性编辑器的

DataField属性。

你能在此选择项目变量、参数、后初始化变量。

procedureTFormMain.btnExecuteClick(Sender:

TObject);

begin

RvProject.Open;

//打开报表项目

RvProject.SelectReport('

ParametrizedReport'

False);

//通过报表名称选择特定的报表

RvProject.SetParam('

Name'

'

Leonel'

);

//给特定参数设定值

RvProject.Execute;

//执行报表

RvProject.Close;

//关闭报表项目

end;

后初始化变量

后初始化变量是只有在报表已经被打印了才知道值的变量。

比如页的总数(TotalPages)就是

后初始化变量,其使用方式类同于一般变量,也是通过DataTexts来打印的。

全局页面

如果有些报表的部分在两个或更多报表中是相同的公用的,你能把这些放置到全局页面中。

比如公司名称、日期和时间、当前页号和总页数等。

我们需要每个报表都有这些东西,我们

应该怎么做?

首先,加一个全局页面到报表项目中。

在这个页面中,加一个section组件。

Sections组件

用于组件的逻辑分组。

在section组件中加入我们想要共享的东西。

在特定报表的特定页,增加另一个section组件。

设定该组件的Mirror属性为前面那个全局

页面中的Section组件。

你能看见全局页面中的Section组件及其包含的对象均被映射进来

了。

对于其它特定的页面,同法炮制,现在多个页面就可以共享一些组件了。

条件打印

有时我们会根据特定的条件打印报表的特定部分。

Rave对此提供了强劲的支持。

我们可以根

据字段值和参数的条件映射一些sections。

在新的一个页面中创建一个参数HeaderKind。

它可能的值为H0(无页头),H1(第一种页

头),H2(第二种页头)。

在全局页面中增加一个新的section组件,它具有第二种页头风格。

返回到ConditionalReport报告Page1的页面,加一个DataMirrorSection部件,设定它的

DataField字段为Param.HeaderKind。

打开它的DataMirrors属性编辑器,增加两个Data

Mirrors:

如果值是H1,将打印第一种页头;

值是H2,将打印第二种页头;

因为值为H0并不匹配任何mirrors,将不打印页头。

RvProject.SelectReport(cmbReports.Text,False);

casecmbReports.ItemIndexof

1:

RvProject.SetParam('

edName.Text);

2:

HeaderKind'

Format('

H%d'

[cmbHeaderKind.ItemIndex]));

//

给特定参数设定值

镶嵌报表项目文件到应用EXE文件中

通常,当你发布应用程序时,你必须同时包括你的报表项目文件。

如果你让报表项目文件成

为一个独立文件,你就可以采用简单方式对其更新而不需要重新编译你的应用程序。

如果你

想把报表项目文件包含在你的应用程序的EXE中,也是很简单的,你需要:

设定RvProject组

件的StoreRAV属性。

你通过Load一个报表项目文件把它包含在DFM中,通过Save可以提取出先

前的一个报表项目文件,通过Clear可以删除镶嵌的报表项目文件。

当报表项目文件被装载

进应用程序的EXE中后,你就不再需要同时把报表项目文件打包进发布的应用程序了!

结论

我们学习了如何使用可视报表设计器,以及相应的一些提示。

RAVE中TRvCustomConnection组件介绍

TRvCustomConnection组件

描述:

通过数据连接组件的事件,你可以定制数据以何种方式送到你的Rave报表.对于使用

TRvCustomConnection的非数据库数据,你会想要通过这些事件得到可以使用的所有数据。

对于数据库数据连接组件象TRvDataSetConnection,你仅仅想要覆盖OnValidateRow事件.

注意:

TRvCustomConnection组件有一个整型的DataIndex和DataRows属性.他们用于自定

义连接器事件,可以和OnFirst,OnNext和OnEOF事件一起使用.DataIndex用作

数据指针位置,它以0为首行.DataRows指明数据的行数.例如,如果你为内存数组定义一个

自定义数据连接,你仅需要初始化Connection.DataRows属性为内存数组中的元素数量

然后让Rave处理OnFirst,OnNext和OnEOF事件.在OnGetRow事件中,你将存取

Connection.DataIndex属性区确定哪个数据被传回来(记住对于首行DataIndex为0).

事件:

OnGetCols

这个事件当Rave要检索数据的元数据信息时被调用,在该事件中你可为你的数据中的每

个字段(列)调用Connection.WriteField方法。

WriteField定义如下:

procedureWriteField(Name:

string;

DataType:

TRpDataType;

Width:

integer;

FullName:

Description:

string);

Name是该字段的短名称,它只能包含文字和数字字符。

DataType是下列所示的数据类型

之一:

dtString,dtInteger,dtBoolean,dtFloat,dtCurrency,dtBCD,

dtDate,dtTime,dtDateTime,dtBlob,dtMemo或dtGraphic。

Width是和该字段宽度

相关的字符。

Fullname是字段名称的更详细的描述,它可以包括空格和其他

非字母数字字符。

如果Fullname为空白,那么Name将用作字段的full

name。

Description是一个完整的字段描述,由于它用memo组件来编辑所以可以包含多行内

容。

使用

description属性来说明字段如何被使用以及关于字段数据的其他信息。

举例:

procedureTDataForm.CustomCXNGetCols(Connection:

TRvCustomConnection);

begin

WithConnectiondobegin

WriteField('

Index'

dtInteger,8,'

IndexField'

Description1'

dtString,30,'

NameField'

Description2'

Amount'

dtFloat,20,'

AmountField'

Description3'

end;

{with}

OnOpen

进行数据会话的初始化工作调用该事件。

在这个事件中你可以打开数据文件,初始化变

量以及为在数据会话结束时引发的OnRestore事件保存当前的数据状态

procedureTDataForm.CustomCXNOpen(Connection:

AssignFile(DataFile,'

DATAFILE.DAT'

Reset(DataFile,1);

OnFirst

定位数据指针到首行的时候调用该事件

procedureTDataForm.CustomCXNFirst(Connection:

Seek(DataFile,0);

BlockRead(DataFile,DataRecord,SizeOf(DataRecord),DataRead);

OnNext

移动数据指针到下一行的时候被调用

procedureTDataForm.CustomCXNNext(Connection:

OnEOF

判断数据指针是否超过文件的结尾处,如果没有行或者在OnNext事件中已经移到最后

一行时触发该事件。

procedureTMainForm.CustomCXNEOF(Connection:

TRvCustomConnection;

varEOF:

Boolean);

EOF:

=DataReadOnGetRow

检索当前行数据时触发该事件。

Rave有好几种方法用来写数据到指定的缓冲区。

字段

的顺序和类型必须完全匹配在OnGetCols事件中提供的字段的定义。

下面是Connection对象提供的用来写数据到数据缓冲区的函数列表

procedureWriteStrData(FormatData:

NativeData:

{dtString

}

procedureWriteIntData(FormatData:

integer);

{

dtInteger}

procedureWriteBoolData(FormatData:

boolean);

dtBoolean}

procedureWriteFloatData(FormatData:

extended);

dtFloat}

procedureWriteCurrData(FormatData:

currency);

dtCurrency}

procedureWriteBCDData(FormatData:

{dtBCD}

procedureWriteDateTimeData(FormatData:

TDateTime);

dtDate,dtTimeanddtDateTime}

procedureWriteBlobData(varBuffer;

Len:

longint);

{dtBlob,dtMemo

anddtGraphic}

有个特别的方法WriteNullData(noparameters),可以用于包含未初始化或null数

据的任何字段的调用。

FormatData参数常用于为该字段传递预先格式化的字符数据。

NativeData参数用于传递字段的未格式化的或Raw数据,如果特定的格式在Rave报表

中定义,那么格式将应用到NativeData。

如果没有特定的格式在Rave报表中定义,那么

FormatData将被用来打印。

procedureTDataForm.CustomCXNGetRow(Connection:

WriteIntData('

'

DataRecord.IntField);

WriteStrData('

DataRecord.StrField);

WriteFloatData('

DataRecord.FloatField);

OnValidateRow

这个事件用来控制是否你允许当前的行包括在报表中。

procedureTDataForm.CustomCXNValidateRow(Connection:

TRvCustomConnection;

varValidRow:

Boolean);

ValidRow:

=DataRecord.FloatField>

=0.0;

OnRestore

中止并恢复数据会话到先前状态时触发该事件。

在这个事件中你可以关闭数据文

件,释放资源以及恢复数据到OnOpen事件触发时的状态

procedureTDataForm.CustomCXNRestore(Connection:

CloseFile(DataFile);

RAVE中Rendering组件介绍

TRvRenderPreview描述

TRvRenderPreview组件接收TRvNDRWriter组件生成的文件并发送到屏幕打

印。

TRvRenderPreview拥有许多方法和事件允许程序员创建完全自定义的用户界面。

TRvRenderPreview

ScrollBox定义报表在预览时候的TScrollBox组件。

FileName和StreamMode的用法和它们

在TRvNDRWriter、TRvRenderPreview中的用法一样。

GridHoriz

和GridVert定义水平和垂直间距,RulerType和网格的设置一起配合使用可以使报表不用进

行打印输出就可以精确的确定报表中各个项目的位置。

MarginMethod和

MarginPercent确定围绕页面的空白页边距的方法和尺寸。

ShadowDepth定义每页阴影的像素

数目。

Monochrome定义是采用单色还是彩色图像输出。

NextPage和PrevPage用来进行页面跳转。

ZoomInc定义ZoomIn和ZoomOut的数量用于修改当前

缩放的百分数因子(ZoomFactor)

TRvRenderPreview事件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1