Foxtable(狐表)用户栏目专家坐堂 → SQLGroupTableBuilder生成的统计表中一定要有相应的列才能进行计算结果?


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

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

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


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
SQLGroupTableBuilder生成的统计表中一定要有相应的列才能进行计算结果?  发帖心情 Post By:2009/10/10 19:33:00 [只看该作者]

用户已被锁定

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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)


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


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
  发帖心情 Post By:2009/10/10 22:25:00 [只看该作者]

用户已被锁定

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
  发帖心情 Post By:2009/10/10 23:15:00 [只看该作者]

用户已被锁定

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/10/11 0:44:00 [只看该作者]

如何取消:Tables("窗口1_Table1").DataSource = DataTables("统计表1")  这个绑定?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/10/12 11:26:00 [只看该作者]

请教: 6楼最下面彩色字的问题怎样解决? 不会又来个关闭窗口再打开吧···

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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")

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/10/12 12:22:00 [只看该作者]

这个简单,好使~   但我6楼、8楼的问题没有解决啊~   (和楼主的不是一个问题)

 回到顶部
总数 11 1 2 下一页