《如何在VB6.0中实现动态统计报表》.pdf
文本预览下载声明
- IT Www.LangSin.Com
浪曦网 国内顶级 视频网络编程教育平台
VB6.0
VB6.0
如何在VVBB66..00中实现动态统计报表
该文档由国内顶级IT视频网络编程教育平台整理发布
在利用VB 开发MIS 系统的过程中,经常需要制作动态统计报表。本文就如何实现动态数据源下
的分组交叉统计报表进行阐述,并结合实例给出编程指导。
在VB6.0 的数据环境设计器中,我们可以利用“添加命令”一项来连接报表所需的数据源,同
时利用“添加命令”属性中的分组与合计功能设计分组交叉统计报表的数据源,至此我们可以设计
简单的数据存在于单一表静态数据源下分组交叉报表,对于数据存在多表的复杂的动态数据源
下的分组交叉报表来说,仍实现不了,实现该功能的关键在于构造一个符合动态数据源要求的中
间表。下面以一管理系统中工程成本统计报表的实例来说明如何实现动态数据源下的分组交叉
统计报表。
一、报表要求与分析
该报表要求列出在指定的时间段内实施的各项工程所耗器材明细、数量、费用,并且计算
各项工程的成本,最终计算所有工程的累计成本。
需求分析后可知该报表是个典型的动态数据源下分组统计报表,分组项为工程名称,要求
对每个分组进行子汇总和对所有分组进行总汇总。由于在该系统中的出库单和出库单明细分别
存放在不同的表中,因此必须根据报表的要求预先构造一个成本统计中间表,命名为
EquipMentCost。相关表结构如图1。
通过对表OutBill 和OutBillDetail 的分析,发现两者通过关键字OutBill 相联,下面通过SQL
语句生成中间表EquipmentCost,语句如下:
Insert into EquipmentCost
(Project,Name,Standard,Type,Num,Cost)
select ject as Project, as Name,b.standard as Standard, b.type as Type,b.num as
Num, b.num b.price as Cost from Outbill a left join OutbillDetail b on (a.outbill=b.outbill)
where a.OutDate=date1 and a.OutDate=date2
date1 和 date2 变量用来指定时间,注意插入前要先清空该中间表的所有数据。
二、利用数据环境设计器生成工程成本报表的初始模板
打开一个数据环境设计器,在其属性表单中设置其名称属性为EnvCatv,并添加一个数据库
连接到当前库Catv,连接名称为CatvConn。在当前库连接下单击右键,选择“添加命令”选项,创
建一个命令,命名为CmdCost,在该命令的属性页的“通用”选项页上设置SQL 语句如下:
Select from EquipmentCost
浪曦网-国内顶级IT 视频网络编程教育平台 Www.LangSin.Com
- IT Www.LangSin.Com
浪曦网 国内顶级 视频网络编程教育平台
单击“应用”按钮察看效果。
随后对该命令进行分组,右键单击该命令,选择“属性”选项,在属性页的“分组”选项页中,
将Project(工程名称)字段设置为分组字段,分组名称为GroupCost,单击“应用”按钮观看效果。
接着对该命令进行子汇总,右键单击该命令,选择“属性”页的“汇总”选项页,将Num(器材
数量)、Cost(器材成本)设置为子汇总字段,分别命名为“合计1”、“合计2”,汇总名称为GrantTotal,
该名称为总汇总所共用。在程序中显示报表前,必须对该名称对应的记录集RsGrantTotal 进行刷
新,否则数据报表不能反映统计中间表的最新内容。单击“应用”按钮观看效果。
最后对该命令进行总汇总,右键单击该命令,选择“属性”页的“汇总”选项页,将“合计1”、
“合计2”设置为总汇总字段,分别命名为“总计1”、“总计2”,单击“应用”按钮观看效果。
按照上面的步骤,我们在当前连接CatvConn 下建立了一个包含汇总的分组命令,接着建立
一个数据报表设计器命名为RptCost,将该分组子命令拖到数据报表的“细节”段内,释放后,调
节各个字段的大小和位置,其中,子汇总字段和总汇总字段还应
显示全部