Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:SQLGroupTableBuilder生成的统计表中一定要有相应的列才能进行计算结果?

1楼
liuruihua 发表于:2009/10/10 19:33:00
用户已锁定!
2楼
mr725 发表于:2009/10/10 20:58:00

你是要这样的结果吗?:::::

dim b As New SQLGroupTableBuilder("统计表1","jlj")
b.Groups.AddDef("批次")
b.Totals.AddDef("合格蛋数")
b.Exprs.Adddef("产蛋率","[合格蛋数]/[存栏母鸡]")
b.Exprs.Adddef("入舍鸡产蛋率","[合格蛋数]/[进栏母鸡]")
b.build

with DataTables("统计表1")
    .DataCols.Add("淘汰", GetType(Integer))
End With

For Each r As Row In Tables("统计表1").Rows
    r("淘汰")  = DataTables("jlj").Compute("Sum(淘汰)", "批次 = '" & r("批次") & "'")
Next

Tables("窗口1_Table1").DataSource = DataTables("统计表1")
Tables("窗口1_Table1").Cols("淘汰").Move(1)

3楼
liuruihua 发表于:2009/10/10 22:25:00
用户已锁定!
4楼
mr725 发表于:2009/10/10 22:34:00
不太明白你的意思,给个 统计表 的样式看看。

或是再加上下面代码:

Maintable = Tables("统计表1")
dim n as integer = CurrentTable.Count
Dim Sum As Integer = DataTables("统计表1").Compute("Sum(产蛋率)")
Dim Sum1 As Integer = DataTables("统计表1").Compute("Sum(入舍鸡产蛋率)")

CurrentTable.AddNew()
currenttable.current("批次") = "平均数"
currenttable.current("产蛋率") = Sum/n
currenttable.current("入舍鸡产蛋率") = Sum1/n

结果:


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-10-10 22:58:19编辑过]
5楼
liuruihua 发表于:2009/10/10 23:15:00
用户已锁定!
6楼
mr725 发表于:2009/10/11 0:06:00

dim b As New SQLGroupTableBuilder("统计表1","jlj")
b.Groups.AddDef("批次")
b.Totals.AddDef("合格蛋数")
b.build

with DataTables("统计表1")
    .DataCols.Add("淘汰", GetType(Integer))
    .DataCols.Add("产蛋率", GetType(Double))
    .DataCols.Add("入舍鸡产蛋率", GetType(Double))
End With

Tables("统计表1").Cols("淘汰").Move(1)

Maintable = Tables("统计表1")
Tables("窗口1_Table1").DataSource = DataTables("统计表1")
Tables("窗口1_Table1").Cols("淘汰").Move(1)
For i as integer = 0 to Tables("统计表1").count -1
    dim r as row = Tables("统计表1").Rows(i)
    dim n0 as integer = DataTables("jlj").Compute("Count(产蛋率)", "批次 = '" & r("批次") & "'")
    dim n as integer = DataTables("jlj").Compute("Count(入舍鸡产蛋率)", "批次 = '" & r("批次") & "'")

    Dim Sum As Double = DataTables("jlj").Compute("Sum(产蛋率)", "批次 = '" & r("批次") & "'")
    Dim Sum1 As Double = DataTables("jlj").Compute("Sum(入舍鸡产蛋率)", "批次 = '" & r("批次") & "'")
   
    r("淘汰")  = DataTables("jlj").Compute("Sum(淘汰)", "批次 = '" & r("批次") & "'")
    r("产蛋率")  = Sum/n0
    r("入舍鸡产蛋率")  = Sum1/n   '这是简单算术平均数,加权平均数公式自己搞定吧。
Next

结果:
图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看


但不知为何? 第二次执行时,会提示错误,说:不存在产蛋率和入舍产蛋率两列??? 郁闷啊~ 
为何?=》Tables("窗口1_Table1")所在窗口要是关闭后重新打开就不会提示了~ ?

[此贴子已经被作者于2009-10-11 0:28:52编辑过]
7楼
mr725 发表于:2009/10/11 0:44:00
如何取消:Tables("窗口1_Table1").DataSource = DataTables("统计表1")  这个绑定?
8楼
mr725 发表于:2009/10/12 11:26:00
请教: 6楼最下面彩色字的问题怎样解决? 不会又来个关闭窗口再打开吧···
9楼
czy 发表于:2009/10/12 11:50:00
如果简单的平均值这样就可以了,但楼主上次说要的不是这个结果。

dim b As New SQLGroupTableBuilder("统计表1","jlj")
b.Groups.AddDef("批次")
b.Totals.AddDef("合格蛋数")
b.Totals.AddDef("淘汰")
b.Exprs.Adddef("产蛋率","[合格蛋数]/[存栏母鸡]",AggregateEnum.Average)
b.Exprs.Adddef("入舍鸡产蛋率","[合格蛋数]/[进栏母鸡]",AggregateEnum.Average)
b.build
Tables("窗口1_Table1").DataSource = DataTables("统计表1")
10楼
mr725 发表于:2009/10/12 12:22:00
这个简单,好使~   但我6楼、8楼的问题没有解决啊~   (和楼主的不是一个问题)
共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.