• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
QuickReport基本知识
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
QuickReport基本知识
软件发布 QuickReport基本知识
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 编程技术 | BCB教程 | QuickReport基本知识

QuickReport基本知识

 

添加时间: 2007-7-9 4:25:47  作者: BCB教程  阅读次数:126   来源: http://www.d9soft.com

 

 

       

一、 简单了解各控件功能

  以下是各控件最简单的使用功能,其他功能依具体的实现而介绍。

  1. TquickRep:带有坐标,作为其他报表控件(如TQRBand)的容器,它的Band属性可以自动添加各种类型的TQRBand.
  2. TQRLabel:打印静态的文本(即不是根据数据库值来改变的),作用象Tlabel , Caption的内容就打印出来的内容。
  3. TQRDBText:打印数据库字段值,一个值一行。作用象TDBText.把它的DataSet , DataField分别赋予Table1,Company时,将打印Table1所指向的表的Company字段的内容。
  4. TQRSysData:打印系统信息如时间,页码,报表头等。
  5. TQRMemo:非常象TQRLabel,只是它可以打印多行,也是打印静态数据。
  6. TQRRichText:打印RichText格式,能够连接到一个Form上的RichEdit控件并打印它的内容,不过必须是32位版本的。
  7. TQRShape:打印方框、圆和垂直、水平线。
  8. TQRImage:打印静态的图片,包括(BMP,WMF,ICON).
  9. TQRDBImage:从数据库接收图片。
  10. TQRBand:用来确定报表的不同位置应该显示什么内容,它上面可以放控件(参见二)。
  11.TQRGoups:Groups可以不限级别的组操作。当你连接了几个datasets到报表时可以通过Groups成组的对dataset进行操作。

  二、 报表的控件摆放循序

  出现在所有页上的标题(PageHeader)

  标题(只有首页才有)(Title)

  所有列的标题(ColumnHeader)

  记录的内容,一个字段一列(Detail)

  摘要(最后一页才有)(Summary)

  出现在所有页上的页脚(PageFooter)

  这些根据设置不同的Band(不是控件,一种类型而已,在其上面可以放其他控件)来定位。总共有六种Band。

  三、 一个简单的例子

  这个例子制作打印一张表的部分字段名及该字段数据内容的报表。

  1. 建立一个新project
  2. 放一个TTable到Form上,DatabaseName设为BCDEMOS,TableName指向Customer表,Active设为true.
  3. 放一个TquickRep控件在Form上,DataSet属性为Table1.(即要显示上边Table1所指向的表的内)。
  4.展开TquickRep的Bands属性,设HasDetail为true,这时自动增加个detail band(一个TQRBand控件,故也可以直接放一个TQRBand控件,BandType属性设为detail就行了)。
  5.放一个TQRDBText控件在detail band上面,设DataSet指向Table1,DataField指向Company。第四步是设置在报表的什么位置显示什么类型的数据,而TQRDBText则具体实现。
  6.选TquickRep控件,按右键,选择”Preview”预览,应该看到表Customer的字段Company的所有字段值。

  到这一个简单的例子就OK了,程序实现预览及利用TQRuickRep自带的打印功能只须在Form中加一个按钮,它的OnClick事件为:QuickRep1->Preview();

  四、 一个使用TQRGoups、TQRExpr控件的报表

  该报表先列出州名,接着列出该州的所有公司及公司总数,一个州列完后空一行(groups中断),列出新的州名,接着列新州下的所有公司,没有填州名的公司统一列在Unknown state下面。

  1. 建立一个新project。
  2. 放一个Tquery在Tquickrep上,其SQL属性为:select * from customer order by State,Company;(即根据州、公司排序),DatabaseName为BCDMome,Active为true.
  3. 放一个TquickRep控件在Form1上,DataSet为Tquery1.
  4. 放一个TQRGroups控件在TquickRep上,这时默认为group header。(任何时候当group中断或更高级别的group中断,这个header都将打印出来,如果有表达式,根据表达式的值显示内容。)接着添加一个group footer band,添加时,放一个TQRBand控件在报表上,连接TQRGroups的FooterBand属性到这个QRBand,这时这个新建的TQRBand就成为Group Footer. (TQRGroup的一个重要特性是表达式,任何时候当表达式的值变时Group都将中断,如表达式是按省列出城市名,当前列出广东省,当属于该省的城市列完后,表达式值改变,这时Group中断,接着显示其他省的城市名。)TQRGroups的Expression属性设为Query1.State(根据不同的州来中断)。
  5. 放一个TQRBand控件在报表上,BandType为rbDetail.
  6.放一个TQRExpr控件在group header上面,其Expression属性为:if(State<>’’,State,’Unknown state’),即如果公司的州没填,就归入Unknown state,否则归入State.
  7.放三个TQRDBText在Detail上,他们的DataSet都指向Query1,DataField分别指向Company,Contact,Phone.
  8.在放一个TQRExpr控件在group Footer上面,Expression为’Customers in’+State+’:’+Str(Count) 作用是在每个州的公司列完后显示该州总共有多少个公司。
  9.按右键选预览,应该看到不同的州名及其公司和公司公司总数。

  五、QuickReport 条件式列印

  可以直接在 TQuickReport 的 OnFilter 事件中写明条件判断,OnFilter事件的引数中有一个以 var 宣告的 PrintRecord 布林型态变数,将这个变数设为 True(预设值), 该笔记录便会印出;反之, 设为False,就不印出这笔记录.


procedure TForm1.QuickReport1Filter(var PrintRecord: Boolean);
begin
PrintRecord := False;
if YourTable.FieldByName('WantedField').AsInteger <= 100 then
Exit;
if YourTable.FieldByName('WantedField').AsInteger >= 150 then
Exit;
PrintRecord := True; 

 

 

 

上下文章:

 

上一篇文章: 用Pcomm Pro 开发串行通信程序 下一篇文章: 应用程序禁止Windows屏幕保护

相关文章:

  • Oracle认证基本知识介绍
  • Oracle认证基本知识的介绍
  • 新手必须了解的oracle入门知识
  • 学习并贯穿Oracle的25条基本知识
  • 知识贴士:什么是“脏”数据?

相关软件:

  • 2006年度巨献电脑知识及技巧大合集 EXE格式
  • UU Point 优优知识库 V1.0.0
  • 婴幼儿护理知识育儿知识 V1.35
  • 玩转电脑的基本功 EXE电子书
  • 计算机基础知识(CHM)
  • 电脑知识十万个为什么 v1.5

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • 如何在C++ Builder环境中实现在菜...
  • Windows下DLL编程技术及应用
  • 在BCB中使用DirectX
  • 用C++Builder开发动画DLL
  • 用C++Builder建立多线程COM服务器
  • C++Builder定制系统菜单
  • ODBC中的同步与异步执行模式
  • C++ Builder下数据库报表Master/D...
  • BCB环境下CORBA实做之客户端
  • 在C++Builer中多线程的实现

BCB教程阅读排行

  • C++ Builder 初学问与答(一)
  • 在 C++ Builder中利用串行通信控件...
  • C++ Builder 初学问与答(二)
  • 漫谈C++ Builder多线程编程技术
  • C++ Builder 初学问与答(十六)
  • C++ Builder 初学问与答(八)
  • 在C++ Builder中用Ole控制Excel表
  • C++ Builder 初学问与答(六)
  • C++ Builder 初学问与答(四)
  • C++ Builder 初学问与答(七)

编程技术阅读总排行

  • VB入门教程之一
  • 第二章 PowerBuilder 入门之创建新...
  • Java连接数据库实例
  • 第一章 什么是PowerBuilder
  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有