Foxtable(狐表)用户栏目专家坐堂 → 求助:统计问题


  共有22470人关注过本帖树形打印复制链接

主题:求助:统计问题

帅哥哟,离线,有人找我吗?
abcdzabcdz
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
求助:统计问题  发帖心情 Post By:2008/12/3 20:53:00 [只看该作者]

 

求助:

问题一:“课时统计”按纽公式如何修改?

说明:在生成的“课时统计”表中“守班”、“巡查”数量均要除以3,即每3小时算1次。

问题二:“汇总流水数据”按纽公式如何设置?

说明:1、要求自动“汇总表”结构(详见文件“汇总表”)。

2、“汇总表”数据来源说明:

姓名来源于“课时名单”中“姓名”列,所有表的姓名。

⑴、“正课”来源于“正课表”,具体数据来源于“课时名单”中“计分”列。

⑵、“辅导”来源于“辅导表”,具体数据来源于“课时名单”中“计分”列。

⑶、“补课”来源于“补课表”,具体数据来源于“课时名单”中“计分”列。

⑷、“考试”列暂不管。

⑸、“甘孜_辅导”来源于”甘孜表”且”性质”为”辅导”的”计分”列;

⑹、“甘孜_补课”来源于”甘孜表”且性质为”补课”的”计分”列;

⑺、“甘孜_守班_小时” 来源于”甘孜表”且性质为”守班”的”计分”列;

⑻、“甘孜_守班_次数” 来源于”甘孜表”且性质为”守班”的”计分”列,且数据除以3(即“甘孜_守班_小时”数量转换为次数,每3小时算一次)

⑼、“甘孜_巡查_小时” 来源于”甘孜表”且性质为”巡查”的”计分”列;

⑽、“甘孜_巡查_次数” 来源于”甘孜表”且性质为”巡查”的”计分”列,且数据除以3(即“甘孜_巡查_小时”数量转换为次数,每3小时算一次)

注:1、计算代码方式能解决问题,感觉不是很好,最好是自动生成文件中“汇总表”结构且自动统计数据。2、文件中有“课时统计”生成,该表是上报数据;而“汇总表”是给公布给教师用的,故两种统计缺一不可。




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


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/3 22:01:00 [只看该作者]

问题1,你用的是内置的交叉表生成器创建的交叉表,只能生成后重算这几列。
问题2,似乎没必要自动创建表,因为临时表不能保存数据。

计算代码就不要去考虑了,因为计算代码最终将全部弃用。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/3 23:57:00 [只看该作者]

第一个问题改成这样试试:

Dim g As New CrossTableBuilder("课时统计", DataTables("课时名单"))
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("性质")
g.Totals.AddDef("计分", "计分")
g.OrderByTotal = True
g.VerticalTotal = True
g.Build()
Dim dt As Table = Tables("课时统计")
For i As integer = 0 to dt.Rows.Count -1
    dt.Rows(i)("crsz3") = Math.Round(dt.Rows(i)("crsz3") / 3,2)
    dt.Rows(i)("crsz4") = Math.Round(dt.Rows(i)("crsz4") / 3,2)
Next
Tables("课时统计").Cols("crsz5").Move(1)
Tables("课时统计").Cols("crsz2").Move(2)
MainTable = Tables("课时统计")

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/4 0:09:00 [只看该作者]

第二个问题:

DataTables("汇总表").DataRows.Clear()
dim f As New Filler
f.SourceTable = DataTables("课时名单")
f.DataTable = DataTables("汇总表")
f.Fill()
Dim dt As Table = Tables("汇总表")
Dim dt1 As DataTable = DataTables("课时名单")
For i As integer = 0 to dt.Rows.Count -1
    dt.Rows(i)("正课") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '正课表'")
    dt.Rows(i)("辅导") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '辅导表'")
    dt.Rows(i)("补课") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '补课表'")
    dt.Rows(i)("甘孜_辅导") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '辅导'")
    dt.Rows(i)("甘孜_补课") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '补课'")
    dt.Rows(i)("甘孜_守班_小时") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '守班'")
    dt.Rows(i)("甘孜_守班_次数") = Math.Round(dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '守班'") / 3,2)
    dt.Rows(i)("甘孜_巡查_小时") = dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '巡查'")
    dt.Rows(i)("甘孜_巡查_次数") = Math.Round(dt1.Compute("sum(计分)","[姓名] = '" & dt.Rows(i)("姓名") & "'and [数据来源] = '甘孜表' and [性质] = '巡查'") / 3,2)
Next
MainTable = Tables("汇总表")
[此贴子已经被作者于2008-12-4 0:10:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/4 0:12:00 [只看该作者]

楼上的代码没有做生成临时表,如果需要可以自己用临时表生成器创建一个。

 回到顶部
帅哥哟,离线,有人找我吗?
abcdzabcdz
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/12/4 9:52:00 [只看该作者]

老六真该禁止CZY版主在深夜论坛上劳作-----CZY版主要保重身体啊!
[此贴子已经被作者于2008-12-5 17:44:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
abcdzabcdz
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/12/4 15:47:00 [只看该作者]

以下是引用czy在2008-12-4 0:09:00的发言:
第二个问题:

DataTables("汇总表").DataRows.Clear()
dim f As New Filler
f.SourceTable = DataTables("课时名单")
f.DataTable = DataTables("汇总表")
f.Fill()
Dim dt As Table = Tables("汇总表").........

执行时出现错误提示


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/4 21:07:00 [只看该作者]

以下是引用abcdzabcdz在2008-12-4 15:47:00的发言:

执行时出现错误提示


可能你的版本和我的不一样,这样应该不会有问题了。

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


 回到顶部
帅哥哟,离线,有人找我吗?
abcdzabcdz
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2008/12/5 11:52:00 [只看该作者]

我昨天也没有发现错误,感到十分奇怪,也许是版本过时。谢谢CZY老师!


 回到顶部