以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求教累计值问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5760)

--  作者:czy
--  发布时间:2010/1/11 0:29:00
--  
Dim dt As DataTable = DataTables("表A")
For Each dr As DataRow In dt.DataRows
    dr("累计产蛋量") = Math.Round(dt.Compute("Sum(产蛋率)","[批次] = \'" & dr("批次") & "\' And [日期] <= #" & dr("日期") & "#"),3)
Next

--  作者:czy
--  发布时间:2010/1/11 21:35:00
--  
2楼的代码本来就是窗口按钮的代码。
--  作者:czy
--  发布时间:2010/1/11 21:43:00
--  
以下是引用liuruihua在2010-1-11 13:59:00的发言:

C版,上面的代码在数据量多时近乎呈死机现象,不得不强行关闭。如果不想通过专门的一列来统计“累计产蛋量”,只要在窗口统计中能实现这样的功能即可,但不知代码如何写如:
Dim b As New SQLGroupTableBuilder("统计表1","表A")
b.Groups.AddDef("批次")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", DateGroupEnum.month, "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")

b.Totals.Addexp("累计产蛋量","  ? ? ? ? ? ? ?)


请指教!

[此贴子已经被作者于2010-1-11 19:38:14编辑过]



Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("批次")
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("日期", DateGroupEnum.Day, "日")
g.Totals.AddDef("产蛋率",True)
g.TableVisible = false
Tables("窗口1_Table1").DataSource = g.BuildDataSource


--  作者:czy
--  发布时间:2010/1/11 23:57:00
--  
你的版本不对吧。
--  作者:yangming
--  发布时间:2010/1/12 16:36:00
--  
是否有空值?
--  作者:yangming
--  发布时间:2010/1/12 17:33:00
--  
你试试,如果没空值是否可以
--  作者:czy
--  发布时间:2010/1/12 17:58:00
--  
以下是引用liuruihua在2010-1-12 16:58:00的发言:
yang版,不管有没有空值,由 GroupTableBuilder改成 SQLGroupTableBuilder就不行,麻烦帮看看如何解决。如定义成: Dim b As New SQLGroupTableBuilder("统计表1","表A")  就不行。


如果不行,说明SQLGroupTableBuilder还没有这个选项。


--  作者:czy
--  发布时间:2010/1/12 18:12:00
--  
还好测试了一下,不然真冤枉了老六。
你的产蛋率为表达式列,改成数据列即可。

Dim b As New SQLGroupTableBuilder("统计表1","表A")
b.Groups.AddDef("批次")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")
b.Totals.AddDef("产蛋率",True)
b.TableVisible = false
Tables("窗口1_Table1").DataSource = b.BuildDataSource

--  作者:czy
--  发布时间:2010/1/12 20:49:00
--  
Dim b As New SQLGroupTableBuilder("统计表1","表A")
b.Groups.AddDef("批次")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")
b.Totals.AddExp("产蛋率","([合格蛋] + [破蛋]) / [存栏母鸡]",True)
b.TableVisible = false
Tables("窗口1_Table1").DataSource = b.BuildDataSource

--  作者:mr725
--  发布时间:2010/1/13 0:24:00
--  
一个批次一个批次的来统计呀::::::::::

Dim b As New SQLGroupTableBuilder("统计表1","表A")
b.Groups.AddDef("批次")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")
b.Totals.AddExp("产蛋率","([合格蛋] + [破蛋]) / [存栏母鸡]",True)
b.Filter = "[批次] = \'20081022\'"
b.TableVisible = false
Tables("窗口1_Table1").DataSource = b.BuildDataSource