以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据统计结果不正确  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4449)

--  作者:程兴刚
--  发布时间:2009/9/25 23:59:00
--  
按钮公式改为:

Syscmd.Project.Save()
Dim b As New SQLGroupTableBuilder("统计表1","fhjl")
b.Groups.AddDef("批次")
b.Totals.AddDef("实孵数量")
b.Totals.AddDef("受精蛋")
b.Build
With DataTables("统计表1")
    .DataCols.Add("受精率", GetType(Double), "[受精蛋] /[实孵数量]")
End With
Tables("窗口1_Table1").DataSource = DataTables("统计表1")

1、您进行的是后台统计,不进行保存的话修改后的数据没有保存到后台的datatable。
2、您的这种统计方法应用的表达式针对的是原始数据表,当出现与分组列相同的两条数据时出现错误,因此改用了增加受精率列的同时使用表达式功能。
3、由于采用了增加列的方式,原来绑定表的方法则对新增加的受精率列无效,因此,只能直接绑定到DataTables("统计表1")

     其他的办法就只能等其他高手来实现,我对统计功能没有深入,今天只是试手,只能说是达到您的目的,方法不一定准确!

--  作者:czy
--  发布时间:2009/9/26 1:14:00
--  
Dim b As New SQLGroupTableBuilder("统计表1","fhjl")
b.Groups.AddDef("批次")
b.Totals.AddDef("实孵数量")
b.Totals.AddDef("受精蛋")
b.Exprs.Adddef("受精率","[受精蛋]/[实孵数量]",AggregateEnum.Average)
b.Build
Tables("窗口1_Table1").DataSource = b.BuildDataSource

--  作者:czy
--  发布时间:2009/9/26 21:10:00
--  
那这样试试

Dim b As New SQLGroupTableBuilder("统计表1","fhjl")
b.Groups.AddDef("批次")
b.Totals.AddDef("实孵数量")
b.Totals.AddDef("受精蛋")
b.Exprs.Adddef("受精率","[受精蛋]/[实孵数量]")
b.Build
DataTables("统计表1").DataCols("受精率").Expression = "[受精蛋] /[实孵数量]"
Tables("窗口1_Table1").DataSource = DataTables("统计表1")

--  作者:czy
--  发布时间:2009/9/30 23:20:00
--  
是bug,只有老六才可以搞定它。