delphi开发学习五:QuickReoprt报表控件使用实例

来源:互联网 发布:淘宝竞争情报 编辑:程序博客网 时间:2024/06/05 10:59

     报表是数据库应用程序设计中非常重要的一部分,数据库应用程序通常都要生成报表,并且打印出来。

     在Delphi7.0中,默认情况下没有直接使用的QuickReport组件,使用时需先进行手工安装。

     单机菜单命令‘’Componet/Install Packages‘’,如下各图所示:


默认情况下,组件包放置在Borland\Delphi\Bin\目录下,在对话框中单机“Add”按钮弹出文件打开对话框,如图所示。选择dclqrt70.dpl文件,确定就可以安装相应的组件包:

安装好后,控件板上出现了组件 Qreport 面板,如下图所示,上面存放了在报表设计时要用到的所有控件。


1、TQuickRep控件

TQuickRep控件是设置报表的核心控件,主要用来设置报表的外观。将 TQuickRep 控件加入到窗体中,它可以定位到窗体上并扩展成全页的尺寸,它相当于一张打印纸,用放置各个 Band 控件和设计元素。

2.TQRBand 控件
TQRBand 控件是一个表带控件,它是报表中最基本的控件,当为 QuickRep 控件设置Bands 属性时,就会自动添加该控件。

3.其他常用报表控件
(1)TQRLabel 控件,打印显示文字,Caption 属性指定输出文本。事件 OnPrint 提供了变换文本的一种方法,参数 Value 是改变输出的文本,但是 Caption 属性不会改变。
(2) TQRDBText 控件, 该控件可以指定数据的来源, 用来显示数据库表格中记录的字段,可以是字符串字段、数字字段、日期字段和备注字段的值。可以通过设置 DataSet 属性和DataField 属性来指定数据源。TQRDBText 控件的 AutoStretch 属性可以确定是否需要进行垂直扩展,以满足记录的需要。

(3)TQRExpr 控件,该控件用来建立和计算表达式的值,并在报表中打印,一般用在统计数据时比较多。

(4)TQRSysData 控件,该控件用于打印系统信息,如报表标题、当前页号等。其中 Data属性表示打印系统信息的种类,共有 7 个选项。

(5)TQRShape 控件,用于在报表上打印一些几何图形。通过属性 Shape 设置图形的形状,属性 Pen 设置边框的风格、模式和颜色。

4、设计报表:

    在这里依然以delphi开发学习一中建立的工程ADOtest为基础。以 PERSONNELMG_SYS 数据库中 BASE_DATA 数据表为例,设计一张完整报表.

 (1)新建一个窗体Treportfrm,在新建的窗体上创建一个 QuickRep1 对象和一个 Adoquery1 对象,并将 QuickRep1的 DataSet 属性设置为 Adoquery1,在 Adoquery1 的 SQL 属性里添加以下语句:select worker_id,worker_name,sex,department_name from base_data,并设置ADOQuery1的connectstring属为:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PERSONNELMG_SYS;Data Source=.和ACtive属性为True;具体如下图所示:


然后在 QuickRep1 上添加 3 个对象:QRBand1、QRBand2 和 QRBand3,这样就完成了报表的外架结构。

(2)QRBand1 主要是作为表头来显示头部信息,因此在 QRBand1 上使用的各控件及其属性设置如下所示:

对象: QRBand1(QRBand 控件)            属性:BandType   属性值:rbPageHeader

对象:QRLabel1(标签)                             属性:Caption        属性值: 员工名单列表
对象:QRLabel2(标签)                             属性: Caption       属性值: 姓名
对象:QRLabel3(标签)                             属性: Caption       属性值:编号
对象:QRLabel4(标签)                             属性: Caption       属性值:性别
对象:QRLabel5(标签)                             属性: Caption       属性值: 部门名称
对象:QRSysData1(QRSysData 控件)  属性: Data            属性值:qrsDateTime

(3)QRBand2 主要用来显示数据记录信息,在 QRBand2 上添加的控件对象及其属性设置如下所示: 

对象:QRBand2(QRBand 控件) 属性: BandType  属性值:rbDetail
对象:QRDBText1(文本控件)      属性:DataField   属性值:Worker_name    属性:DataSet 属性值: ADOQuery1
对象:QRDBText2(文本控件)      属性:DataField  属性值:Worker_id            属性:DataSet 属性值 :ADOQuery1
对象:QRDBText3(文本控件)      属性:DataField  属性值:Sex                           属性:DataSet  属性值:ADOQuery1
对象:QRDBText4(文本控件)      属性:DataField  属性值:Department_name 属性:DataSet 属性值: ADOQuery1

(4)QRBand3 主要用来存放统计信息,在 QRBand3 上面添加的控件对象及其属性设置如下所示:

对象:QRBand3          属性:BandType  属性值:rbSummary
对象:QRLabel8         属性:Caption      属性值:共计人数:
对象:QRSysData3    属性:Data            属性值:qrsDetailCount

报表设计好后的窗体布局如下图所示:


上面只是设计好了报表的布局格式,要使最后显示出统计信息,还需要添加对应的预览报表显示事件。在这里是借助在工程ADOtest里的按钮报表控件应用实例来显示报表窗体并预览报表,所以需要在该按钮事件里对应添加如下代码:Treportfrm.QuickRep1.Preview ;运行如下图所示:


下面附上实例开发的源代码下载链接:

http://download.csdn.net/detail/u011846249/9029883


0 0
原创粉丝点击