求助:
问题一:“课时统计”按纽公式如何修改?
说明:在生成的“课时统计”表中“守班”、“巡查”数量均要除以3,即每3小时算1次。
问题二:“汇总流水数据”按纽公式如何设置?
说明:1、要求自动“汇总表”结构(详见文件“汇总表”)。
2、“汇总表”数据来源说明:
姓名来源于“课时名单”中“姓名”列,所有表的姓名。
⑴、“正课”来源于“正课表”,具体数据来源于“课时名单”中“计分”列。
⑵、“辅导”来源于“辅导表”,具体数据来源于“课时名单”中“计分”列。
⑶、“补课”来源于“补课表”,具体数据来源于“课时名单”中“计分”列。
⑷、“考试”列暂不管。
⑸、“甘孜_辅导”来源于”甘孜表”且”性质”为”辅导”的”计分”列;
⑹、“甘孜_补课”来源于”甘孜表”且性质为”补课”的”计分”列;
⑺、“甘孜_守班_小时” 来源于”甘孜表”且性质为”守班”的”计分”列;
⑻、“甘孜_守班_次数” 来源于”甘孜表”且性质为”守班”的”计分”列,且数据除以3(即“甘孜_守班_小时”数量转换为次数,每3小时算一次)
⑼、“甘孜_巡查_小时” 来源于”甘孜表”且性质为”巡查”的”计分”列;
⑽、“甘孜_巡查_次数” 来源于”甘孜表”且性质为”巡查”的”计分”列,且数据除以3(即“甘孜_巡查_小时”数量转换为次数,每3小时算一次)
注:1、计算代码方式能解决问题,感觉不是很好,最好是自动生成文件中“汇总表”结构且自动统计数据。2、文件中有“课时统计”生成,该表是上报数据;而“汇总表”是给公布给教师用的,故两种统计缺一不可。
问题1,你用的是内置的交叉表生成器创建的交叉表,只能生成后重算这几列。
问题2,似乎没必要自动创建表,因为临时表不能保存数据。
计算代码就不要去考虑了,因为计算代码最终将全部弃用。
第二个问题:
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版主在深夜论坛上劳作,
-----CZY版主要保重身体啊!
[此贴子已经被作者于2008-12-5 17:44:28编辑过]
以下是引用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老师!