Delphi数据库开发完美教程 第9章 数据报表的制作
Delphi7报表制作入门

Delphi报表制作入门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报表的动态生成

DELPHI报表的动态生成(Create Delphi Dynamic Report)摘要:本文主要介绍如何在DELPHI开发环境下动态生成报表,给出公用模块,并结合具体示例分析了实现的主要技术问题,给出解决这些问题的技术细节。
关键词:DELPHI报表、动态创建一、引言报表是数据库应用程序的重要部分,可是报表的生成也是数据库开发中最麻烦的一项工作。
报表格式复杂多样,一直是使程序员头疼的事。
DELPHI 在其3.0以后版本中加入了QUICKREPORT,使这种情形有所改变。
它的全部可视化编程以及设计和运行过程中都可以进行预览等特性给程序开发带来了很大的方便。
我们可以通过在应用程序设计阶段往窗体中添加报表控件,再与数据库表组件Ttable,查询组件Tquery等数据访问组件相关联,从而实现报表的预览与报表的输出。
但在许多应用程序中,程序员往往期望从静态或者动态生成的数据库表中动态提取所需数据,进而生成报表输出。
本文介绍的就是如何动态选择所需数据,动态生成报表的公用模块。
这种动态方式生成的报表更加灵活,也更加容易做到报表的格式统一。
动态报表主要是在程序运行阶段利用Creat方法动态创建控件,设置其Parent属性来设置其容器控件。
然后,在程序中根据所选择的数据库表中的数据字段的长度和数目,通过修改控件的大小和位置属性,来控制控件的大小和外观,如果该控件有事件,可直接把函数或过程名赋给它的相应事件名。
二、动态报表的实现下面结合一个具体实例来说明如何其实现的方法和技术。
1、基本思路数据来源,我们以DELPHI自带的DBDEMOS中的employee.db表为例,它共有6个字段。
在F_main主窗体中(如图一),可以自由选择所需要打印的字段。
它的主要控件及属性设置如下:①.Table1:Databasename设置为DEDEMOS,Tablename设置为employee.db②.Listbox1:显示所连数据库表中的全部字段③.Listbox2:用于选择所需报表输出的字段④.AddBitBtn:用于把所选择的字段名添加到Listbox2中⑤.DeleteBitBtn:用于把Listbox2中的字段名去掉⑥.PreviewBitBtn:用于报表的预览⑦.PrintBitBtn:用于报表的输出⑧.CloseBitBtn:用于关闭应用程序在F_report窗体中,放置了以下主要控件,并设置属性,以减少程序的篇幅:①.Table1:Databasename设置为DEDEMOS,Tablename设置为employee.db②.QuickRep1:papesize属性为A4,dataset属性为Table1,bands 属性中的hascolumnheader、hasdetail、hastitle设置为True显示数据库表中的全部字段在F_report的Oncreate事件中加入了如下代码:Table1.Open;if Table1.Active thenTable1.GetFieldNames(Listbox1.Items);// 获得数据库表中的全部字段名DeleteBitBtn.Enabled:=False; //在Listbox2中无字段时,DeleteBitBtn变灰2、从Listbox1中选择字段添加到Listbox2中为AddBitBtn的Onclick事件加入如下代码:if listbox1.Items.Count=0 then exit; //如Listbox1中无可供选择的字段,则执行空操作if listbox1.Selected[listbox1.ItemIndex] then //在Listbox1中选择字段beginListbox2.Items.Add(Listbox1.Items[Listbox1.ItemIndex]);//往Listbox2中增加选中的字段Listbox1.Items.Delete(Listbox1.ItemIndex);//从Listbox1中删除此字段if Listbox2.Items.Count>=1 then //在Listbox2中有字段才允许执行删DeleteBitBtn.Enabled:=True;end;3、从Listbox2中删除不需要的字段为DeleteBitBtn的Oncreate事件添加如下代码:if Listbox2.Items.Count=0 then exit; // 如果Listbox2中无字段,则执行空操作if listbox2.Selected[Listbox2.ItemIndex] then //在Listbox2中选择字段beginListbox1.Items.Add(Listbox2.items[Listbox2.itemindex]); //添加到Listbox1中Listbox2.Items.Delete(Listbox2.itemindex); //从Listbox2中删除此字段end;if Listbox2.Items.Count=0 then //如果Listbox2中无字段,则DeleteBitBtn变灰DeleteBitBtn.Enabled:=False;4、在报表中动态添加一列的步骤:①.TitleBand1中打印的是报表的名称,这里假设为:动态报表生成示例。
Delphi数据库开发及统计表格设计

Delphi 数据库开发及统计表格设计Delphi 是Borland 公司开发的基于PASCAL 语言的Windows 平台应用程序开发工具,它将可视化编程(Visual Programming) 与面向对象(Object-Oriented) 的卓越优点结合在PASCAL 语言开发平台上,而且同时可以支持Client/Server 模式的SQL 数据库访问与ODBC (开发数据库互连) ,是一个真正面向对象的开发工具。
Delphi 最吸引人的特点是它的强大的数据库访问能力,它主要通过使用数据库引擎(Borland Database Engine,简称BDE)来访问本地数据库和远程数据库。
但对于用户而言,不必直接编程访问BDE ,而只需通过采用窗体(FORM) 和大量方便且实用的数据库访问元件(Component)来实现,通过ReportSmith报表生成器可以生成多种随心所欲的报表。
但是,用ReportSmith 制作的各类报表,只便于输出至打印机上打印出来,若想把报表在屏幕上显示,则还需调用ReportView 。
而ReportView 窗口界面对不太懂Delphi 和Windows 操作的普通用户来说,不直观,也不易操作。
如何制作并在屏幕上显示出直观的二维统计报表,这是本文所要阐述的主要问题。
以表格形式显示数据库内容一般地采用下面两种方式:•纵向列表(如图1)•交叉统计列表(如图2)一、纵向列表Delphi 可以用TDBGRID 控件,以表格形式非常方便地显示单一或多数据库纵向列表。
一般采用两种方法实现:(一)采用TTable 与Tdatasource、TDbgrid 控件在窗体中引入上述三个控件,并在Ttable 中控件指出要访问的数据库存放路径及数据库名,在Tdatasource 控件中指出数据源与Ttable 相连,在TDbgrid 控件中指出显示Tdatasource数据源内容,程序运行后,则显示出如图1所示的数据库纵向列表。
delphi制作报表

批最近刚刚做完一个项目,使用到了RAVE进行报表设计,在使用中也查阅了很多资料,但总觉得网上的资料过于分散,而且都不是很全面,所以决定将如何在Delphi 7中使用RAVE报表写成几篇文章,由于本人从小语文学得不好,不是写作高手,这次也是第一次写这样的文章。
希望看到这篇文章的网友能多提意见,欢迎大家指教。
可以给我留言。
言归正传,在我们要给用户编写的软件中往往需要生成各种各样的报表,报表是数据库中数据的最终表现形式,在Delphi 6以前,编写报表都在使用Qusoft公司的Quick report,而且在Delphi中集成了Quick report。
在Borland Delphi™ 7 Studio 集成开发环境(IDE)的控件面板中取消了Quick report项,取而代之以Nevrona公司Rave Reports项,且在Tools中有Rave Designer 5.0 。
打开Rave Designer 5.0,我们可以如图所示的一个报表设计界面,开发人员可以开发出符合用户要求的报表来,而且这个报表的设计、使用与Delphi集成开发环境几乎是完全的一样,这可能是Rave与其它的报表组件最大的外观上的不同。
我在使用中下载了Rave Reports v5.1.3,你可以在这里或者这里下载,在写这篇文章时,上面上已经发布了Rave Reports 6.0,不过文章还是以Rave Reports v5.1.3为准。
打开Delphi,可以控件面板看到如图:Delphi7下的Rave打开Tools中的Rave,看到的报表设计界面如图:Rave5的报表设计界面一、Rave5的报表设计界面首先,介绍一下Rave的报表设计器的各组件和相关的属性。
Rave Designer集成开发环境的界面包括标题栏、菜单栏、快捷工具栏、组件栏和一些窗口:·标题栏显示了当前的工程名,位于最上部。
·菜单栏,一些功能可通过菜单栏的菜单命令实现。
《Delphi报表设计》课件

Delphi报表可以帮助用户更好地理解和分析数据,从而更好地做出决策。
Delphi报表还可以与其他软件集成,如Excel、Access等,从而实现数据的共享和交 互。
简单报表:只包含 基本的数据展示和 格式设置
报表交互:设置报 表的交互功能,如 筛选、排序、钻取 等
报表控件:使用TDBGrid控件实现报表的显示和编辑
报表事件:通过编写事件处理程序实现报表的交互功能
报表打印:使用TQRPrinter控件实现报表的打印功能
报 表 导 出 : 使 用 TQ R E x p o r t 控 件 实 现 报 表 的 导 出 功 能 , 如 导 出 为 P D F 、 E xc e l 等 格式
优化报表 布局:合 理布局报 表元素, 提高报表 的可读性 和易用性
优化报表 交互:减 少报表交 互次数, 提高报表 交互效率
01 检查报表设计是否正确,包括字段、 格式、计算等
02 使用断点调试,查看报表执行过程中 的变量值和错误信息
03 利用日志文件,记录报表执行过程中 的详细信息,便于定位问题
04
利用第三方工具,如SQL Server Profiler, 监控报表执行过程中的SQL语句和性能指标
05 优化报表性能,包括减少数据量、优 化SQL语句、使用缓存等
06 定期备份报表,防止数据丢失或损坏
错误类型:语法错误、逻辑错误、 数据错误等
异常处理:记录异常信息,显示异 常信息,重新执行异常代码
PART FIVE
导出格式:支持多种格式,如PDF、Excel、Word等 导出设置:可以设置导出文件的名称、路径等 打印设置:可以设置打印纸张大小、方向、页边距等 保存设置:可以设置报表的保存路径、文件名等
第9章 报表与图表

delphi程序设计基础教程
第9章 报表与图表
9.1.7 TQRLabel组件
TQRLabel组件用来在报表中显示静态文本,与使用 TLabel组件在一个窗体中显示静态文本一样。这个文本值在 显示时不能被改变。TQRLabel组件的属性、方法和事件以 及用法与TLabel组件基本一致。
delphi程序设计基础教程
第9章 报表与图表
3. QReport 组件页 Delphi中的QReport组件页中的组件共有23种,该组件 页如图9.1所示。 图9.1 Delphi 中的QReport 组件页
delphi程序设计基础教程
第9章 报表与图表
9.1.2 TQuickRep 组件
使用TQuickRep 组件的方法如下。 (1) 通过Delphi中的New Form创建一个新的窗体。 (2) 选择QReport组件页,将TQuickRep 组件拖到新窗 口中,如图9.2所示。 (3) 设置TQuickRep 组件的Bands属性,确认是否打印 标题,页眉、页脚等。 (4) 在TQuickRep 组件中放入其他种类的QReport组件, 并进行属性设置。 (5) 为程序加入代码。
delphi程序设计基础教程
第9章 报表与图表
9.1.17 TQRComposite组件
TQRComposite组件可以将多个报表合并成一个报表。 使用这个组件可以创建一个包含许多不同条件的大报表,而 不需要通过编程来实现打印。可以简单地将条件报表当成一 个分离的报表进行创建,然后只把需要打印到总报表内的部 分添加进去。 通过OnAddReport事件可以将报表添加到 TQRComposite组件内。
第9章 报表与图表
9.1.13 TQRDBRichText组件
课件Delphi实用教程

系统总体设计与规划。 网络和SQL服务器建设。 数据库设计。 前端开发。 调试与应用程序的发布。
整理版ppt课件
2
9.2 试题库管理系统的设计实例
9.2.1 创建stkgl(试题库管理)数据库
创建包含试题信息表和试卷信息表,结构分别如下两表所示。
数据模块DMSTK
整理版ppt课件
14
9.2.4 C/S数据库应用程序设计
数据模块组件对象属性表
整理版ppt课件
15
9.2.4 C/S数据库应用程序设计
Ⅱ 使用字段编辑器把QryTMNR,DSetSJ,TabST组件中的所有字 段设置为永久字段,再设置这些永久字段的DisplayLabel属性, 以便于阅读。
按钮不应太多,如果按钮过多,可以考虑用菜单替代。 (2)颜色选择不应过多,尽量保持与操作系统或运行应用程序
的背景相协调。尤其没必要追求过分鲜艳的界面。 (3)最好提供友好的中文界面。 (4)要充分考虑到与用户的交互性,在后台执行的应用程序可
以通过提供一个进度条方式给用户一个直观的认识。 (5)最好能提供一定的提示信息,用以引导用户操作。 (6)要充分考虑到用户的误操作的可能性,对敏感的信息提供
整理版ppt课件
5
9.2.2建立存储过程
CREATE PROCEDURE sjsc @sjbh tinyint
AS DROP TABLE paper; CREATE TABLE paper(txdm tinyint,tmnr text); DECLARE @i int; SET @i=-3; WHILE @i<40
● 其次,本例中,将访问基于Microsoft SQL Server的数据库, 因此选择“Microsoft OLE DB Provider for SQL Server” 选项,选择完毕后单击“Next>>”按钮。
数据报表的制作_roshyhlc

数据报表的制作_roshyhlc数据报表的制作1. Rave报表概述Delphi 7中实现报表的方法称为rave,将rave报表组件添加到应用程序中后就可以创建各种类型的报表了。
1)Rave 工程组件:Rave工程组件只包含一个rvproject组件,她是应用程序喝rave 可视化报表之间的接口,可以在rave designet中设计各种格式的报表。
通过rvproject组件可以在delphi应用程序中打开已经设置好的rave组件。
2)引擎类组件引擎类组件包括rvsytem和rvndrwriter组件,可以从以前定义的报表文件中读取,也可以根据属性描述设定报表风格。
3)render组件Render组件用于将一个RSR文件或者从rvndrwriter产生的流转换为各种格式,并发布出来。
这类组件主要包括:rvrenderpreview、rvenderprinter、rvrenderpdf、tvrenderhtml、rvrenderrif和rvrendertext组件。
4)数据连接组件主要用于将应用程序的数据与rave报表中的direct data view 相连接,主要包括:-----connection.下面重点介绍几个常用的组件1. RvProject组件它是rave报表工具中的核心组件,是访问rave可视化报表的手段,只要使用Rave报表就要用到RvProject组件。
在一个应用程序中一般只有一个rvproject组件。
属性:projectFile属性:指定应用程序保存报表定义的Rave项目文件,这种项目文件的扩展名一般是.rav。
方法:Execute方法:用于开始打印当前选中的rave报表。
使用方法:rvproject1.execute; Open方法:用于打开指定的报表项目文件,相当于把Active属性设置为true。
Close方法:用于关闭执行的项目文件,并从内存中卸载,相当于把active属性设置为false。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
●图9-1 Rave Report5.0组件
图9-2 Select Rave Project File对话框
Engine属性:用于指定报表的引擎,该报表引擎在通过RvProject组件打印报表的时候使用,若这个属性没有被定义,一个默认的RvSystem将会被创建以填补该属性,TRvSystem和TRvNDRWriter对象都可以赋给这个属性。
2011-9-177
图9-3 Load Into Exe对话框
2011-9-1711
SystemOptions属性:用于控制RvSystem组件的配置情况,其各个属性的取值以及含义表9-2所示。
表9-1 SystemOptions中各个属性的取值以及含义
表9-2 SystemOptions中各个属性的取值以及含义2011-9-1712
图9-4 Rave Designer的主界面
2011-9-1722
●图9-5 Drawing页
●图9-6 Bar Code页
Standard页:该页中包含了一些基本的报表组件,如图9-7
●图9-7 Standard页
图9-10选择创建对象的类型图9-11 选择活动的连接
●图9-12 创建的DataView对象图9-13 Sample Table对话框
●第11步:单击“”按钮,显示调整页面边距和报表标题的对话框,如图9-16所示。
在Report Title中修改报表的标题为“结算报表”。
2011-9-1730
●图9-14 选择显示字段图9-15 调整字段出现的顺序
●第12步:单击“”按钮,打开选择报表字体的对话框,如图
9-17所示。
●第13步:选择完报表字体后,单击“”按钮创建报表。
创建
完成后在Page Designer中调整一下字段的位置即数据栏位置,以改进显示效果;接着修改数据标题的Text属性为中文形式,如图9-18所示,其中数据标题用于说明数据栏中每列数据表示的含义,在第一页的报表标题下面,在其它页位于报表页眉的下面。
2011-9-1731
●第14步:选择【File】|【Execute Report】命令,打开
Output Options对话框。
Output Options对话框用于设置输入参数,设置完成后单击“”按钮,即可看到报表预览的效果,如图9-19所示。
●图9-16 调整页面边距和报表标题图9-17 选择报表字体
●第15步:关闭预览窗口,选择【File】|【Save】命令,将
工程文件保存在应用程序的目录中,命名为reportjiesan.rav。
2011-9-1732
●
●图9-18 调整报表格式
2011-9-1733
●图9-19 报表预览的效果图9-20 Output Options对话框
●通过上例可以看出,采用Rave Report5.0进行报表开发十
分简单,只需要掌握报表设计过程中的几个要点即可以设计出满足各种实际需求的报表。
注意使用Rave Report5.0报表生成向导进行报表开发时,一般情况下都需要对报表格式进行一定的调整以及对界面进行美化,如上例中对Text组件和DataText组件位置进行了调整、表头文字及标题文字的美化。
2011-9-1735
图9-21 界面布局
图9-22 嵌套报表预览效果
2011-9-1743。