以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]分组统计表合并问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75225)

--  作者:cqlwsam
--  发布时间:2015/9/30 15:17:00
--  [求助]分组统计表合并问题

我的项目中有“工作量登记”等四个表,需要进行分组统计。我设计了一个窗口“工作量统计”,双击月份赋值后对四个表进行筛选,然后按“。。姓名”进行分组统计,然后合并数据赋值给窗口中的表。现在没有合并的结果。只有第一个表的统计数据。不知道为什么。项目文件如下:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:789654.table


--  作者:大红袍
--  发布时间:2015/9/30 15:39:00
--  

不要这样统计,直接用代码循环每一行合计。

 

http://www.foxtable.com/help/topics/0681.htm

 


--  作者:cqlwsam
--  发布时间:2015/9/30 16:06:00
--  
这样合并为什么结果有问题。
--  作者:大红袍
--  发布时间:2015/9/30 16:09:00
--  

合并是合并大家都有的数据,不适合你这样做。

 

用二楼的方法统计。


--  作者:大红袍
--  发布时间:2015/9/30 16:25:00
--  

合并的,这样测试

 

Dim sql1 As String="select * f rom {工作量登记} "
Dim sql2 As String="select *,总费用 * 0.3 as 提取费用 f rom {语音工作量登记}"
Dim sql3 As String="select *,[照片信息_收费]*0.3 as 开单费用,[照片信息_收费]*0.7 as 照片费用 f rom {CBCT工作量登记}"
Dim sql4 As String="select *,[矫治器_单价] * [矫治器_数量] as 矫治器_费用 f rom {矫治器加工费用登记}"

Dim bd1 As New GroupTableBuilder("统计表1", sql1)
Dim dtt1 As fxDataSource
bd1.Groups.AddDef("医生姓名")
bd1.Totals.AddDef("工作量_本部_主治号")
bd1.Totals.AddDef("工作量_本部_副高号")
bd1.Totals.AddDef("工作量_本部_急诊号")
bd1.Totals.AddDef("工作量_本部_特需")
bd1.Totals.AddDef("工作量_本部_合计")
bd1.Totals.AddDef("工作量_礼嘉_主治号")
bd1.Totals.AddDef("工作量_礼嘉_副高号")
bd1.Totals.AddDef("工作量_礼嘉_特需")
bd1.Totals.AddDef("工作量_礼嘉_合计")
bd1.Totals.AddDef("治疗费_本部")
bd1.Totals.AddDef("治疗费_礼嘉")
bd1.Totals.AddDef("治疗费_合计")
bd1.Decimals = 2
dtt1=bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",sql2)
Dim dtt2  As fxDataSource
bd2.Groups.AddDef("首诊医生","医生姓名") \'根据型号分组
bd2.Totals.AddDef("提取费用","语音治疗_费用") \'对数量进行统计
dtt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",sql3)
Dim dt3 As fxDataSource
bd3.Groups.AddDef("开单医生","医生姓名") \'根据型号分组
bd3.Totals.AddDef("开单费用","CBCT_开单费用") \'对数量进行统计
dt3 = bd3.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表4",sql3)
Dim dt4 As fxDataSource
bd4.Groups.AddDef("照片信息_照片医生","医生姓名") \'根据型号分组
bd4.Totals.AddDef("照片费用","CBCT_照片费用") \'对数量进行统计
dt4 = bd4.BuildDataSource()

Dim bd5 As New GroupTableBuilder("统计表5",sql4)
Dim dt5 As fxDataSource
bd5.Groups.AddDef("医生姓名") \'根据型号分组
bd5.Totals.AddDef("矫治器_数量") \'对数量进行统计
bd5.Totals.AddDef("矫治器_费用") \'对数量进行统计
dt5 = bd5.BuildDataSource()

dtt1.Combine("医生姓名",dtt2,"医生姓名") \'将销售统计数据组合到进货统计数据
dtt1.Combine("医生姓名",dt3,"医生姓名") \'将退货统计数据组合到进货统计数据
dtt1.combine("医生姓名",dt4,"医生姓名")
bd1.VerticalTotal = True

dtt1.show("23434")


--  作者:cqlwsam
--  发布时间:2015/9/30 17:00:00
--  

我已经修改,但是没有数据了,“工作量统计”的月份列由窗口中的双击相应月份赋值,姓名由表“医生姓名”赋值。其余已按照例子修改:datacolchanged及maintablechanged

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:789.table

[此贴子已经被作者于2015/9/30 17:00:48编辑过]

--  作者:大红袍
--  发布时间:2015/9/30 17:01:00
--  

合并,生成的是一个新的临时表


--  作者:cqlwsam
--  发布时间:2015/9/30 17:04:00
--  
对的,我原来的思路就是先生成一个临时表,然后将临时表中的数据再赋值给统计表中。
--  作者:cqlwsam
--  发布时间:2015/9/30 17:05:00
--  
我按照例子修改后没有数据了。
--  作者:大红袍
--  发布时间:2015/9/30 17:07:00
--  
 生成以后,再filler进去。