文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
网站首页 软件下载
数码学院 网络学院
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院程序开发Delphi在Delphi中实现数据分析模块的动态报表
精品广告
推荐TOP10
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
阅读TOP10
·在Delphi中控制扫描仪
·Delphi中DLL的创建和使用(1)
·DELPHI多层分布式开发(2)
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·实现高速文件拷贝
·Delphi下“培养”自己的简单木马
·DELPHI多层分布式开发(1)
·DBGrid使用全书(三)
·Delphi多层开发方案比较
·Delphi 6 SOAP 源码中的BUG修正
·ASC II 完整码表及简介
·小技巧:如何用Delphi创建快捷方式
·Delphi基础开发技巧(1)
·Delphi中利用钩子实现QQ聊天窗口的修改
·先人的DELPHI基础开发技巧
·Delphi编程根据IP地址得到主机名
·如何Delphi中操纵拨号网络
·实现关键字查找word文档里相匹配的内容
·用Delphi实现WinSocket高级应用
·利用Delphi编写Socket通信程序

在Delphi中实现数据分析模块的动态报表

日期:2007年7月23日 作者: 查看:[大字体 中字体 小字体]


 一、问题的提出

---- Delphi作为强大的数据库开发工具,正被愈来愈多的编程人员所采用,"聪明的程序员用Delphi"更形象生动的道出广大程序员的心声,但这并不意味着所有功能的实现都非常容易,例如,笔者在开发军队的某个信息系统中,就在为数据分析模块中DecisionGrid1控件的数据进行报表输出时走了不少的弯路。广大的Delphi的爱好者在今后的学习或工作中也有可能会遇到类似的问题,而在许多参考书中,很少有甚至没有关于它们的解决方法,于是,我想花费一点时间把它整理出来,以供大家参考。本文中报表动态生成的公用模块具有很大的灵活性和易操作性,其中的思路、实现的功能和通用性等方面的优缺点就由大家看了本文后自有定论。

二、建立报表的动态输出公用模块

---- 下面,结合公司人事管理信息系统说明其实现的方法和技术。

---- 1、基本思路:首先从DecisionGrid1中获得报表所需数据,放到二维数组PA中,然后在C:\DataWork中动态创建一个数据表tjb.dbf,存放报表数据,最后用T able1与tjb.dbf相连接,以后工作就与一般的动态输出报表(如查询报表)相类似,在这里我就无须赘述了。

---- 2、建立窗体文件:放入六个用于数据分析的常用控件DecisionQuery1、DecisionSource1、DecisionCube1、DecisionGraph1、DecisionPivot1、DecisionGrid1,设置DecisionSource1的decisionCube属性为decisionCube1,decisionCube1的Dataset属性为decisionQuery1、decisionQuery1的DatabaseName属性为c:\datawork;一个Table1控件,用于连接数据表tjb.dbf;一个QuickRep1控件,用于数据的报表输出;两个Button1和Button2控件,其Caption分别设为"报表输出"和"返回"。分别设置decisionCube1的Dataset属性为decisionQuery1、decisionQuery1的DatabaseName属性为c:\datawork.。

---- 3、单元文件的主要控件代码 Button1控件的代码如下(定义变量部分略),主要分以下8个功能块来加以说明:

---- ⑴删除同名或上一次建立的数据表

if FileExists('c:\DataWork\tjb.dbf') then
deletefile('c:\ DataWork \tjb.dbf');

---- ⑵根据DecisionGrid1控件的cells属性,获得报表所需数据,并将其默认的'Sum'值汉化成'总计'、'合计'、'小计'以符合汉语的习惯要求,所求得的数据存放于二维数组PA中
for i:=1-DecisionGrid1.FixedCols to DecisionGrid1.
ColCount-DecisionGrid1.FixedCols-1 do
for j:=0-DecisionGrid1.FixedRows to DecisionGrid1.
RowCount-DecisionGrid1.FixedRows-1 do
begin
pa[i,j]:=DecisionGrid1.cells[i,j];
//处理DecisionGrid1控件中固定列的值为'Sum'的数据项
if ((i=1-DecisionGrid1.fixedcols) and (pa[i,j]='Sum')) then
pa[i,j]:='总 计'
else if ((i = -1) and (pa[i,j]='Sum')) then
pa[i,j]:='小 计'
else if ((i<-1) and (i>1-DecisionGrid1
.FixedCols) and (pa[i,j]='Sum')) then
pa[i,j]:='合 计';
//处理DecisionGrid1控件中固定行的值为'Sum'的数据项
if (pa[i,j]='Sum' ) and (j=-1) then
pa[i,j]:='总 计';
end;

---- ⑶用T able1动态创建数据表tjb.dbf
Table1.Active:=false;
with Table1 do

[1] [2] [3] [4] 下一页 

上一篇:在Delphi中实现图片的旋转、缩放

下一篇:在Delphi中实现多重查询


相关软件: 相关文章:
·揪出占据硬盘的凶手
·巧借表格向Excel中导入文本数据
·EasyRecovery 604硬盘数据恢复软件技巧
·Windows XP中的数据保护和恢复二(组图)
·树形目录的递归实现数据库+jsp+javabean
·内网数据库服务器入侵实战
·打造一个通用ASP.NET数据分页控件
·SQL2000 数据库安装说明
·ASP.NET:根据IP获取当地天气预报的实现
·在Excel中将连续多列相同数据项合并

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号