文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发Delphi在Delphi中实现数据分析模块的动态报表
精品推荐
特别推荐
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
热点TOP10
·Delphi中DLL的创建和使用(1)
·用Delphi实现WinSocket高级应用
·利用Delphi编写Socket通信程序
·DBGrid使用全书(三)
·DELPHI多层分布式开发(2)
·实现关键字查找word文档里相匹配的内容
·实现高速文件拷贝
·用Delphi实现动态获取版本信息
·使用TCP/IP协议实现聊天程序
·实现webbrowser中的打印、复制、全选等编辑功能
·在Delphi中控制扫描仪
·拦截其它程序的网络数据封包
·DELPHI多层分布式开发(1)
·Delphi中利用钩子实现QQ聊天窗口的修改
·Delphi下的ADO使用方法!
·Delphi下“培养”自己的简单木马
·Delphi多层开发方案比较
·Delphi数据库控件使用入门
·Delphi的拨号连接类
·在Delphi中实现数据分析模块的动态报表

在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
begin
DatabaseName := 'c:\DataWork';
TableName := 'tjb';
TableType := ttDBase;
with FieldDefs do
begin
Clear;
for i:=1 to 40 do
Add(IntToStr(i),ftString,30, False);
end;
CreateTable;
end;
//下面将DecisionGrid1控件中的数据放入数据表中
Table1.Active:=true;
for j:=1-DecisionGrid1.FixedRows to DecisionGrid1
.RowCount-DecisionGrid1.FixedRows-1 do
begin
K:=0;
Table1.Insert;
for i:=1-DecisionGrid1.FixedCols to DecisionGrid1
.ColCount-DecisionGrid1.FixedCols-1 do

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




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

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

在Delphi中实现数据分析模块的动态报表 相关文章:
·如何实现局域网打印机共享
·非主流QQFlash模块和动态横幅
·QQ空间篮球大图模块:科比系列【2】
·TCP/IP编程实现远程文件传输
·QQ空间蓝色大图模块:美人鱼
·QQ空间大图模块:浅蓝色
·Flash AS3:动态文本滚动条
·Visual C++ 实现数字化图像的分割
·ASP.NET购物车的实现及结算处理
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
在Delphi中实现数据分析模块的动态报表 相关软件:
·Google Earth 动态卫星地图 汉化版 带我们进入间谍时代 能看见你家院子
·Google Earth 动态卫星地图 汉化版 能看见你家院子的车 电信做种
·DelphiV7.0
·TCP-IP详解卷2:实现
·国际财务报告准则(财务报表范例)(英文版)
·Delphi 4.0应用开发指南
·动态网页设计视频全教程 csf 共35讲,详见查看
·新会计准则之下的报表格式
·DDNS动态域名管理V1.0.2 XP
·Delphi进销存程序设计(含源代码)

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