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


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

主题:求助:统计问题

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


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

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

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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望: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


 回到顶部