文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库Delphi程序执行时实时生成报表
精品推荐
特别推荐
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
·关于SQL语句的优化方式
·SQL优化34条
·查询及删除重复记录的方法
热点TOP10
·学习SQL语句之SQL语句大全
·玩转Windows桌面图标
·精妙SQL语句收集
·Transact-SQL语句总汇
·了解SQL语句的功能,快速学会SQL语句
·ADO连接数据库字符串大全
·ASP.NET中数据库的操作初步----DataSet操作数据库
·101个微软提供的Visual Studio 2005示例
·Apache+php+mysql安装与配置详解
·SQL优化34条
·用独立的DLL来存储图片(资源文件)
·一个简单的酒店系统的数据库设计
·通过Remoting service上传文件
·VB.NET的数据库基础编程(1)
·如何在GridView中一次性批量更新多行数据
·使用设计模式构建通用数据库访问类
·QQ聊天记录器演示程序(一)
·数据库基础知识:SQL中的IIF语句详解
·VB.NET的数据库基础编程(2)
·SQL数据库应聘人员面试时经常被问的问题

Delphi程序执行时实时生成报表

日期:2006年4月6日 作者: 查看:[大字体 中字体 小字体]


当前,在软件开发工具中,Delphi以其控件多、面向对象编程功能强、代码执行速度快和简单易用等特点,结合可视化开发环境和当前最快的编译器技术,已成为全球公认的快速应用开发工具,正被愈来愈多的编程人员所采用。使用Delphi可以编写各种Windows应用程序,尤其是开发数据库信息管理系统有其独特的优势。在数据库信息管理系统的开发的过程中,我们经常需要打印输出很多报表,用Delphi设计复杂报表是一件比较烦锁的事件,它没有Visual FoXPro中那样简便。但由于Delphi中设计报表采用的也是控件,因此,我们可以在程序执行时直接建立所需的报表控件来实时生成报表,而且,生成的报表样工可以由程序控制来决定。例如,我们在数据库信息查询时,查询出来的结果信息结构一般是不固定的,假如我们要将查询结果打印出来,只设计一种报表格式是不行的,为所有可能的结果信息都设计一种报表格式也不是一种很好的解决办法。为了解决这样一个问题,我们可以采用实时生成报表技术。本文的目的就是通过一个实例向大家详细介绍怎样实时生成报表。
    本例所将设计一个打印对话框,该对话框包括TQickRep控件和一些报表样式控制控件,其它窗体外观如下图所示:
1、 控件功能说明
QuickRep:TQuickRep  它包括列标头(HB:TQRBand)、细节(DB:TQRBand)、页脚(FB:TQRBand)、总结(SB:TQRBand)带区,并且细节、页脚、总结中没有包括一个TQRLabel、TQRExpr或TDBText控件,主要是在程序执行时建立,列标头带区中包括Title(TQRLabel)用于报表标题;QRSQL: TQRLabel用于查询条件,这两个控件的Caption属性在程序执行时可任意更改。为了能够让QuickRep不显示出来,将其置于Panel1(Tpanel)的后面,并将Panel1扩展到整个窗体;
Query:TQuery  SQL语句控件,程序将根据Query返回的结果来生成报表。因此,在建立这个窗体时,一定要将Query.SQL属性指定一条SQL语句;
在以上窗体中“纸张”和“页面设置”两栏所包括的控件是对QuickRep.Page属性的控制,程序执行时更改它们会直接改变QuickRep控件相应的属性值,这可以通过OnChange或OnExit事件代码完成;
“打印内容设置”栏中的标题是指定报表的标题(TT:TEdit),其值与QuickRep.ReportTitle和Title.Caption一致,可以任意更改;“打印查询条件”复选框指定是否打印查询条件,该复选框的选取否直接控制QRSQL.Caption是否为空;“表列对齐方式”由一组选项按钮组成,它主要用于报表生成时细节内容的对齐方式,它的更改控制变量RD1(Byte)的值(0自动对齐,1中间对齐,2左边对齐);“表列打印宽度”由一组选项按钮组成,主要用于在生成报表格式时列值的宽度,它的更改控制变量RD2(Byte)的值(0自动宽度,1相同宽度,2限制最大宽度),当选中1相同宽度,2限制最大宽度时要求输入宽度,单位为像素;“统计方式”指出报表是否包含页脚(FB:TQRBAND)和总和(SB:TQRBAND)带区。
2、 程序说明
程序定义了如下类型:
      TQRLabelName=array of TQRLabel;
      TQRDBTextName=array of TQRDBText;
      TQRShapeName=array of TQRShape;
      TQRExpName=array of TQRExpr;
上述类型为动态数组类型,数据的每个元素为一个类。在实时建立报表控件时,要建立的控件个数是不确定的且控制名称也不能确定,用动态数组是一个比较好的解决办法,即可以任意指定数据的维数,又不用自己管理内存分配问题,还有利于报表包含控件的释放与处理。程序还声明了上述类型的变量如下:
      CHBName:TQRLabelName;
      DBName:TQRDBTextName;
      CHBShape,DBShape,FBShape,SumShape:TQRShapeName;
      FBName,SumName:TQRExpName;
这些数组变量将在窗体建立时根据Query返回的字段结果分配内存,每一个字段对就数组的一个元素。
程序执行过程:窗体在建立并显示时,就对本窗体建立初始化操作。在OnCreate事件中将QuickRep.Page属性的相应值显示出来,在OnShow事件中执行Query.Open操作,并根据返回结果分配控件数组变量空间。窗体建立后,单击“生成”按钮生成报表(忽略备注字段和相片字段),然后可单击“打印”和“预览”进行打印或者预览报表。当产生报表后又更改了设置,必须重新生成报表。如果Query返回的结果集字段太多,生成报表时有可能纸张矿小不能将生成全部报表,可调整报表纸张大小,再生成报表。当关闭窗体时,将释放建立的控件。

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 下一页 




上一篇:玩转Windows桌面图标

下一篇:Delphi中串行通信的实现

Delphi程序执行时实时生成报表 相关文章:
·《拳皇2002》隐藏超杀出招表 - 技巧心得
·爆涨的牛市!炒股票超搞笑QQ表情全集
·注册表修改大全之XP
·[综合]召唤兽常见技能资质表(最新修补完整版)
·世界各地域名后缀对照表 世界各国域名表
·黑白猪走俏国内QQ表情
·大变身,程序如此搞笑QQ表情
·常用注册表设置
·文件扩展名一览表
·跟我学做Excel XP斜线表头
Delphi程序执行时实时生成报表 相关软件:
·RegVac Registry Cleaner(注册表吸尘器)V5.01.06 汉化版
·注册表优化实战练习手册(图文教程 菜鸟先飞系列教材)
·红楼梦人物关系表
·注册表实例应用视频教程swf
·美国乡村音乐 经典代表作完全(2)
·用图表说话
·国际财务报告准则(财务报表范例)(英文版)
·表格魔鬼教程--蓝色经典版
·最新QQ表情全收集
·注册表实用手册V5.4 绿色版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn