Delphi7中利用RAVE报表.docx
- 文档编号:26204494
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:28
- 大小:188.56KB
Delphi7中利用RAVE报表.docx
《Delphi7中利用RAVE报表.docx》由会员分享,可在线阅读,更多相关《Delphi7中利用RAVE报表.docx(28页珍藏版)》请在冰豆网上搜索。
Delphi7中利用RAVE报表
言归正传,在咱们要给用户编写的软件中往往需要生成各类各样的报表,报表是数据库中数据的最终表现形式,在Delphi6以前,编写报表都在利用Qusoft公司的Quickreport,而且在Delphi中集成了Quickreport。
在BorlandDelphi™7Studio集成开发环境(IDE)的控件面板中取消了Quickreport项,取而代之以Nevrona公司RaveReports项,且在Tools中有RaveDesigner。
打开RaveDesigner,咱们能够如下图的一个报表设计界面,开发人员能够开发出符合用户要求的报表来,而且那个报表的设计、利用与Delphi集成开发环境几乎是完全的一样,这可能是Rave与其它的报表组件最大的外观上的不同。
我在利用中了RaveReports,你能够在或下载,在写这篇文章时,上已经发布了RaveReports,只是文章仍是以RaveReports为准。
打开Delphi,能够控件面板看到如图:
Delphi7下的Rave
打开Tools中的Rave,看到的报表设计界面如图:
Rave5的报表设计界面
一、Rave5的报表设计界面
第一,介绍一下Rave的报表设计器的各组件和相关的属性。
RaveDesigner集成开发环境的界面包括题目栏、菜单栏、快捷工具栏、组件栏和一些窗口:
·题目栏显示了当前的工程名,位于最上部。
·菜单栏,一些功能可通过菜单栏的菜单命令实现。
·快捷工具栏为位图按钮,一些经常使用的菜单命令用这些按钮实现。
·报表组件栏分页显示各类组件(Standard、Report、Zoom、Colors、Lines、Fills、Fonts、Drawing、BarCode、Alignment),在利用Rave开发应用程序的进程中,正确、合理地利用组件超级重要。
用它可设计基于数据库和文本的复杂报表。
·左侧半部份像Delphi的objectinspector工具,可设置报表元件的属性,它的下部份有对应属性的简短提示。
·正中部份为设计区域,开发者可在上面添加各类设计元件,如Drawing的横线、直线、矩形、椭圆,Barcode中各类经常使用的条码,Standand中的Text、Memo、Section、Bitmap、Metafile等等。
·右边为设计导航区,可查看报表的各元件的更多信息,如报表库和数据显示目录,设计时也可快速定位元件位置。
二、Rave的报表设计器,组件栏的各组件:
1、Drawing(画图)组件页:
Linecomponent:
画线组件,所画的线较灵活。
能够看到其属性入图,有颜色、线宽、线行等属性,设计者依照需要更改属性。
改变线的长短位置,选中线条后,选择一个端点那么光标会变成十子型,拖动即可。
Hlinecomponent:
画水平线组件。
Vlinecomponent:
画垂直线组件。
Rectanglecomponent:
画长方形组件,能够利用fill组件填充。
Squarecomponent:
画正方形组件,能够利用fill组件填充。
Ellipsecomponent:
画椭圆组件,能够利用fill组件填充。
Circlecomponent:
画圆形组件,能够利用fill组件填充。
2、BarCode(条形码)组件页:
PostNetBarCode:
打印邮件标签上包括POSTNET条码。
I2of5BarCode:
打印Interleaved2of5条码。
Code39BarCode:
打印standardandextendedCode39条码。
Code128BarCode:
打印A,BandCCode128条码。
UPCBarCode:
打印UPC-12条码。
EANBarCode:
打印EAN-13条码。
3、Standard()组件页:
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,那么报表的初始页为5,页码从5开始。
4、Report(报表)组件页:
若是报表需要的是数据库的数据,那么那个组件页中的组件利用比较频繁。
DataText:
用来显示数据库中内容比较短的信息,要用它显示相应的数据库字段信息,那么要利用到DataField和DataView两个属性,用来连接数据库和字段。
DataText用来设计主从报表时,LookupDataView是相应的数据连接、LookupDisplay是显示内容、LookupField是主报表相应的数字段进行关联的字段的内容,也确实是主数据字段进行连接的字段。
LookupInvalid是操纵相应错误产生后的情形。
DataMemo:
在Memo的基础上支持了数据库的字段显示,利用DataField和DataView两个属性,用来连接数据库和字段。
除输出相应的文本内容外,还能够输出RTF格式,显示RTF格式,需要设置ContainsRTF属性为True。
CalcTex:
那个组件用来统计报表字段的最大值、最小值、总和、统计值等内容直接利用,只需要通过CalcType属性来设置,CalcType属性包括了ctAverage(求平均值)、CtCount(求个数)、ctMax(求最大值)、ctMin(求最小值)、ctSum(求累加和)。
DataMirror Section:
和Section组件相似。
Region:
若是要进行报表的打印,Region组件规定了打印区域,能够设置Columns来分栏。
Band:
那个组件算是一个容器组件,包括text、Memo组件等,包括的是非数据库库信息,Band组件要放置在Region中,选择BandStyle属性后,显现如以下图的属性对话框。
左侧为报表中Band的列表,右面的PrintLocation包括:
BodyHeader(页眉)、GroupHeader(组眉)、RowHeader(行眉)、Detail(表体)、RowFooter(行脚)、GroupFooter(组脚)和BodyFooter(页脚),BandStyle属性能够多项选择。
PrintOccurrence属性包括:
First(首页打印)、NewPage(打印新一页)、NewColumn(新分栏)。
选择First(首页打印)也确实是Band包括的内容只在第一页打印,选择NewPage(打印新一页),Band包括的内容必需在新的一页打印,选择NewColumn(新分栏),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结合利用来完成日常报表的统计功能。
5、Zoom(缩放)组件:
在设计报表时,放大、缩小报表页面。
6、Colors(颜色)组件:
对选择的对象快速的设置颜色。
7、Lines(线型)组件:
关于选择的线,更改其线型。
8、Fills(填充)组件:
关于正方形等图形填充样式。
9、Fonts(字体)组件:
进行字体的设置。
10、Alignment(队列)组件:
调整对齐组件和组建的层次。
隔了好长时刻终于有时刻继续向大伙儿介绍RAVE了,这次要紧介绍7下的Rave组件。
打开Delphi7,看到的rave页如下:
Delphi7下的Rave
包括有RvProject、RvSystem、RvNDRWriter、RvCustomConnection、RvDataSetConnection、RvTableConnection、RvQueryConnection、RvRenderPreview、RvRenderPrinter、RvRenderPDF、RvRender、RvRenderRTF、RvRenderText这几个组件。
一、RvProject组件
在利用rave报表中,那个组件是最为重要的一个,是利用频率最高的一个组件,开发人员能够通过那个报表完成报表的打印、文件的生成、输出,土过此事能够利用设计状态,也能够通过它来点用相应的报表设计器。
1、属性:
DLLFile:
发行报表时需要的dll文件,在以后用户不需要单独发行相应的动态链库文件了。
Engine:
指定相应报表生成的目的地,一样的情形下,是RvSystem,也确实是说它能够打印、打印预览、生成打印文件。
固然也能够选择RvNDRWriter组件,那么报表输出的结果是RTF、HTML、PDF、TXT其中的一种。
LoadDesigner:
许诺用户挪用报表设计器,若是它的值为true,那么最终用户就能够够挪用报表设计器;若是它的值为False,那么最终用户就没有权利挪用报表设计器。
ProjectFile:
相应报表项目文件,指定详细目录途径。
StoreRAV:
要将报表文件嵌入到exe文件中,在那个地址就要填入相应的报表项目文件。
2、要紧方式:
(1)SelectReport方式:
FunctionSelectReport(ReportName:
String;FullName:
Boolean):
Boolean;
ReportName是相应的报表名称,FullName那么表示是不是以报表的全程作为报表的名称。
(2)Execute方式:
打印选择的相应报表文件,报表时被SelectReport选择的。
;
(3)ExecuteReport方式:
(ReportName:
String);
ReportName是相应的报表的名称。
(4)Open方式:
;打开相应的报表以共操作。
(5)Close方式:
;关闭一个报表的操作。
二、RvSystem组件
打印或预览报表时,进行打印参数设置的。
利历时与RvProject结合。
1、属性:
DefaultDest:
指定打印的方式。
rdPreview:
预览;
rdFile:
文件;
rdPrinter:
打印机。
RulerType:
相应的标尺单位。
rtNone:
没有标尺;
rtHorizCm:
横向标尺,单位为厘米;
rtVertCm:
纵向标尺,单位为厘米;
rtBothCm:
先是所有的标尺,单位为厘米;
rtHorizIn:
横向标尺,单位为英寸;
rtVertIn:
纵向标尺,单位为英寸;
rtBothIn:
所有标尺,单位为英寸;
SystemFiler:
报表打印文件参数的设置。
若是DefaultDest属性为rbFile,那么需要设置那个地址的属性值。
SystemOptions:
所有报表输出设置属性。
SystemPreview:
报表预览参数的设置。
若是DefaultDest属性为rdPreview,那么需要设置那个地址的属性值。
SystemPrinter:
报表打印参数的设置。
若是DefaultDest属性为rdPrinter,那么需要设置那个地址的属性值。
SystemSetup:
是对是不是许诺打印,是不是许诺打印机设置等参数的设置。
TitlePreview:
更改报表预览的窗体的名称,例如能够将ReportPreview改成报表预览。
TitleSetup:
更改报表输出窗体的名称,例如能够将OutputOptions改成输出设置。
TitleStatus:
报表状态窗体名称,例如能够将ReportStatus改成报表状态。
2、要紧方式:
OverridePreview方式,OverrideSetup方式,OverrideStatus方式:
这三个方式能够对报表设置、打印设置、报表预览窗体进行覆盖,在后面会介绍如何通过这几个方式是窗体为中文。
三、NDRWriter组件
利用该组件实现自概念报表预览。
四、RvDataSetConnection组件,RvTableConnection组件,RvQueryConnection组件
利用这三个组件实现数据库的连接。
五、RvRenderPDF组件,RvRenderHTML组件,RvRenderRTF组件,RvRenderText组件
报表生成相应文件的组件,可让报表生成相应的pdf、html、rtf、text文件。
但生成文件对中文不支持,会显现乱码。
前面两篇,向大伙儿介绍了RAVE的组件,从今天开始向大伙儿介绍如何成立报表。
第一要感激lijack等列位朋友给我发的电子邮件,鼓舞我继续写下去。
今天也查了一下RAVE一词的意思。
RAVE在辞典上的翻译为“咆哮”。
rave-up喧闹的宴会,狂欢聚会,我们经常也听到锐舞派对,也就是RAVEPARTY。
要对Rave文化追根溯源其实不太容易,并非是因为其无从追溯,恰恰相反,正因为它涵盖的面太广,根基太深,所以反而让人有些无从入手。
从远的来说,Rave与各块大陆上土著部落的祭典仪式有着相当的渊源,因为这些祭典通常也是通过音乐与紧密的鼓点而使人进入某种超验状态;从近的来说,Rave又与60年代的嬉皮文化与迷幻实验有着密不可分的关系,两代年轻人除了装扮不同,许多心理状态与行为方式其实都有值得注意的相似之处。
真正当代的将新式音乐与舞曲相结合的Rave运动起源于英国。
10多年前,Rave首先出现在曼彻斯特和伊比沙岛(英国著名度假胜地)。
1987年末及1988年初,两个并无关系的团体--Schoom和GenesisP开始在英国组织彻夜的舞会,前者是以house音乐为主,而后者以hardcore为主。
与此同时,Rave在德国登陆,在柏林等大城市很受欢迎。
很快,Rave在英德两地吸引了数以万计的青少年,更吸引了许多来自美国的DJ。
此刻Rave已是欧、美、日,乃至港台最时兴、最UNDERGROUND的一种青青年娱乐形式,Rave文化从一开始便被打上了高科技的烙印,从急速疯狂的前卫电子舞曲,新奇剌激的影像视觉,到Sh得眼花缭乱的装束,Rave与E-Life,已经成为科技对青年文化阻碍的见证。
当然我也不知道为什么Nevrona公司把这个报表组件叫做rave,也许和锐舞有着一定的关系吧,就像java咖啡。
一、成立一张简单的报表
言归正传,咱们开始成立一张简单的报表,打开7,新建一个工程,打开Tools下的RaveDesigner,在Rave设计器的page1中,拖放Text,咱们在text属性中写入文字内容,例如,“我的第一张报表”,通过Font属性更改字体和字的大小,颜色等。
拖放Memo组件,在text属性中输入文字能够看到一个多行的文本。
拖放Bitmap组件,在FileLink属性当选取插入图片的位置,就能够够看到在报表中显示了一张图片。
点击[ExecuteReport]或F9,那么查看到运行后报表。
接下来,对在可视环境中设计好的报表保留,可视化的报表就保留为*.rav文件。
那么在delphi程序中如何挪用呢?
在delphi中拖放RvProject、RvSystem组件,而且把RvProject的Engine属性连接为RvSystem1。
RvProject1的ProjectFile属性,选择为咱们适才保留的.rav文件。
再在form1上放置一个Button,添加click事件,代码如下:
procedure(Sender:
TObject);
begin
;fm}
procedure(Sender:
TObject);
var
I1:
integer;
S1:
string[20];
S2:
string[20];
Bitmap:
TBitmap;
PolyLineArr:
array[1..6]ofTPoint;
begin
withSenderasTBaseReportdobegin
{打印表头和表尾}
SectionTop:
=; ;
SetFont('TimesNewRoman',12);
Println(#9+IntToStr(I1)+#9'$'+S1+#9'$'+S2);
end;{for}
{打印具有阴影的数据}
ClearTabs;
SetTab,pjLeft,,2,BOXLINENONE,0);
SetTab(NA,pjCenter,,2,BOXLINENONE,0);
SetTab(NA,pjRight,,2,BOXLINENONE,0);
SetTab(NA,pjRight,,2,BOXLINENONE,0);
forI1:
=11to20dobegin
IfOdd(I1)thenbegin
TabShade:
=0;
endelsebegin
TabShade:
=15;
end;{else}
Str(I1*:
2:
2,S1);
Str(I1*:
2:
2,S2);
Print(#9'LastName'+IntToStr(I1)+',');
SetFont('TimesNewRoman',8);
Print('FirstNameM.');
SetFont('TimesNewRoman',12);
Println(#9+IntToStr(I1)+#9'$'+S1+#9'$'+S2);
end;{for}
ClearTabs;
{分栏报表}
ClearTabs;
SetTopOfPage;
SectionBottom:
=;
Home;
SetFont('宋体',12);
Bold:
=true;
Underline:
=true;
Print('分栏报表(LinesLeft/ColumnLinesLeft/LineNum/ColumnNum)');
SetTopOfPage;{SettopofpagetocurrentYPos}
Bold:
=false;
Underline:
=false;
Italic:
=false;
Home;{Gotohomeposition}
SetColumns(4,;{Create4columnswith"betweeneach}
whileColumnLinesLeft>0dobegin
Println(IntToStr(LinesLeft)+'/'+IntToStr(ColumnLinesLeft)+'/'+
IntToStr(LineNum)+'/'+IntToStr(ColumnNum));
end;{while}
{具有边框的分栏报表}
ClearTabs;
SetTopOfPage;
SectionBottom:
=;
Home;
SetFont('TimesNewRoman',12);
Bold:
=true;
Italic:
=true;
Print('BoxedColumns');
SetTopOfPage;{SettopofpagetocurrentYPos}
Bold:
=false;
Italic:
=false;
Home;{Gotohomeposition}
ClearTabs;
SetPen(clBlack,psSolid,1,pmCopy);
SetTab,pjCenter,,0,BOXLINEALL,0);
SetTab(NA,pjCenter,,0,BOXLINEALL,0);
SetTab(NA,pjCenter,,0,BOXLINEALL,0);
SetTab(NA,pjCenter,,0,BOXLINEALL,0);
SetColumns(4,;{Create4columnswith"betweeneach}
whileColumnLinesLeft>0dobegin
ifLineNum=1thenbegin
TabShade:
=15;
Println(#9'LL'#9'CLL'#9'L#'#9'');{打印题目栏}
endelsebegin
TabShade:
=0;
Println(#9+IntToStr(LinesLeft)+#9+IntToStr(ColumnLinesLeft)+
#9+IntToStr(LineNum)+#9+IntToStr(ColumnNum));
end;{else}
end;{while}
SetColumns(1,0);
{在指定位置绘出文本}
NewPage;
OriginX:
=;{Setorigintonormal}
OriginY:
=;
GotoXY,;
Print('Text@,');
GotoXY,;
Println('Text
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi7 利用 RAVE 报表