在VB6.0中实现动态统计报表

页面导航:首页 > 软件编程 > vb.net > 在VB6.0中实现动态统计报表

在VB6.0中实现动态统计报表

来源: 作者: 时间:2016-02-05 12:32 【

在利用VB开发MIS系统的过程中,经常需要制作动态统计报表。本文就如何实现动态数据源下的分组交叉统计报表进行阐述,并结合实例给出编程指导。 在VB6.0的数据环境设计器中,我

 

 

在利用VB开发MIS系统的过程中,经常需要制作动态统计报表。本文就如何实现动态数据源下的分组交叉统计报表进行阐述,并结合实例给出指导。

 

  在VB6.0的数据环境设计器中,我们可以利用添加命令一项来连接报表所需的数据源,同时利用添加命令属性中的分组与合计功能设计分组交叉统计报表的数据源,至此我们可以设计简单的数据存在于单一表静态数据源下分组交叉报表,对于数据存在多表的复杂的动态数据源下的分组交叉报表来说,仍实现不了,实现该功能的关键在于构造一个符合动态数据源要求的中间表。下面以一管理系统中工程成本统计报表的实例来说明如何实现动态数据源下的分组交叉统计报表。

 

一、报表要求与分析

  该报表要求列出在指定的时间段内实施的各项工程所耗器材明细、数量、费用,并且计算各项工程的成本,最终计算所有工程的累计成本。

 

  需求分析后可知该报表是个典型的动态数据源下分组统计报表,分组项为工程名称,要求对每个分组进行子汇总和对所有分组进行总汇总。由于在该系统中的出库单和出库单明细分别存放在不同的表中,因此必须根据报表的要求预先构造一个成本统计中间表,命名为EquipMentCost。相关表结构如图1。

 

  通过对表OutBill和OutBillDetail的分析,发现两者通过关键字OutBill 相联,下面通过SQL语句生成中间表EquipmentCost,语句如下:

 

  Insert into EquipmentCost

 

  (Project,Name,Standard,Type,Num,Cost)

 

  select a.project as Project, b.name as Name,b.standard as Standard, b.type as Type,b.num as Num, b.numb.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

 

  单击“应用”按钮察看效果。

 

  随后对该命令进行分组,右键单击该命令,选择“属性”选项,在属性页的分组选项页中,将Project(工程名称)字段设置为分组字段,分组名称为GroupCost,单击应用按钮观看效果。

 

  接着对该命令进行子汇总,右键单击该命令,选择“属性”页的“汇总”选项页,将Num(器材数量)、Cost(器材成本)设置为子汇总字段,分别命名为合计1合计2,汇总名称为GrantTotal,该名称为总汇总所共用。在程序中显示报表前,必须对该名称对应的记录集RsGrantTotal进行刷新,否则数据报表不能反映统计中间表的最新内容。单击应用按钮观看效果。

 

  最后对该命令进行总汇总,右键单击该命令,选择“属性”页的“汇总”选项页,将“合计1合计2设置为总汇总字段,分别命名为总计1总计2,单击应用按钮观看效果。

 

  按照上面的步骤,我们在当前连接CatvConn下建立了一个包含汇总的分组命令,接着建立一个数据报表设计器命名为RptCost,将该分组子命令拖到数据报表的

Tags:

相关文章

    文章评论

    
    <