Rss & SiteMap

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

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

标题:外部库由ACCESS转为SQL后代码出错

1楼
liuruihua 发表于:2011/11/6 11:52:00
用户已锁定!
2楼
liuruihua 发表于:2011/11/6 23:07:00
用户已锁定!
3楼
狐狸爸爸 发表于:2011/11/7 16:47:00

呵呵,不好意思,今天很忙,做个简单例子上来吧,将这个SQL表也传上来.

4楼
liuruihua 发表于:2011/11/13 11:51:00
用户已锁定!
5楼
狐狸爸爸 发表于:2011/11/13 12:27:00

下面的代码测试通过:

 

Dim b As New SQLGroupTableBuilder("统计表1","种鸡生产记录")
b.Connection Name = "zjxt"
b.Filter="year([日期])=" & 2009 & " and month([日期])=" & 7
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", DateGroupEnum.month, "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")
b.Totals.AddDef("合格蛋数")
b.Totals.AddDef("次蛋数")
b.Totals.AddDef("破蛋数")
b.Totals.AddExp("总蛋数","ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0)")
b.Totals.AddExp("产蛋率","(ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0)) / [存栏母鸡] * 100","产蛋率(%)_存栏鸡",AggregateEnum.Average)
b.Totals.AddExp("入舍产蛋率","(ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0)) / [入舍母鸡]*100","产蛋率(%)_入舍鸡",AggregateEnum.Average)
b.Totals.AddDef("死亡公鸡","死亡数_♂")
b.Totals.AddDef("死亡母鸡","死亡数_♀")
b.Totals.AddDef("淘汰公鸡","淘汰数_♂")
b.Totals.AddDef("淘汰母鸡","淘汰数_♀")
b.Totals.AddDef("转入公鸡","转入_♂")
b.Totals.AddDef("转入母鸡","转入_♀")
b.Totals.AddDef("转出公鸡","转出_♂")
b.Totals.AddDef("转出母鸡","转出_♀")
b.Totals.AddDef("存栏公鸡","存栏_♂")
b.Totals.AddDef("存栏母鸡","存栏_♀")
b.Totals.AddDef("销售淘汰公鸡","销售淘汰_♂")
b.Totals.AddDef("销售淘汰母鸡","销售淘汰_♀")
b.Totals.AddExp("公死淘率","([死亡公鸡]+[淘汰公鸡])/[存栏公鸡]*100","死淘率(%)_♂",AggregateEnum.Average)
b.Totals.AddExp("母死淘率","([死亡母鸡]+[淘汰母鸡])/[存栏母鸡]*100","死淘率(%)_♀",AggregateEnum.Average)
b.Totals.AddExp("公死率","[死亡公鸡]/[存栏公鸡]*100","死亡率(%)_♂",AggregateEnum.Average)
b.Totals.AddExp("母死率","[死亡母鸡]/[存栏母鸡]*100","死亡率(%)_♀",AggregateEnum.Average)
b.Totals.AddExp("公淘率","[淘汰公鸡]/[存栏公鸡]*100","淘汰率(%)_♂",AggregateEnum.Average)
b.Totals.AddExp("母淘率","[淘汰母鸡]/[存栏母鸡]*100","淘汰率(%)_♀",AggregateEnum.Average)
b.Totals.AddDef("公耗料","耗料量(kg)_♂")
b.Totals.AddDef("母耗料","耗料量(kg)_♀")
b.Totals.AddExp("公羽均耗料","[公耗料]/[存栏公鸡]*1000","羽均耗料(g)_♂",AggregateEnum.Average)
b.Totals.AddExp("母羽均耗料","[母耗料]/[存栏母鸡]*1000","羽均耗料(g)_♀",AggregateEnum.Average)
b.Totals.AddExp("合格率","[合格蛋数]/([合格蛋数]+[次蛋数]+[破蛋数])*100","种蛋_合格率(%)",AggregateEnum.Average)
b.Totals.AddExp("破损率","[破蛋数]/([合格蛋数]+[次蛋数]+[破蛋数])*100","种蛋_破损率(%)",AggregateEnum.Average)
b.Totals.AddExp("公母配比","[存栏母鸡]/[存栏公鸡]",AggregateEnum.Average)
b.Totals.AddExp("料蛋比","(ISNULL([公耗料],0) + ISNULL([母耗料],0)) / [合格蛋数] * 1000","料蛋比(克/枚)",AggregateEnum.Average)
b.Decimals=3
b.Build

[此贴子已经被作者于2011-11-13 12:27:26编辑过]
6楼
liuruihua 发表于:2011/11/13 12:53:00
用户已锁定!
7楼
狐狸爸爸 发表于:2011/11/13 13:01:00

查看生成的表结构,可以发现这些XX率的类型都是整数,原因知道, 解决办法也就出来了:

 

Dim b As New SQLGroupTableBuilder("统计表1","种鸡生产记录")
b.C
b.Filter="year([日期])=" & 2009 & " and month([日期])=" & 7
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", DateGroupEnum.month, "月")
b.Groups.AddDef("日期", DateGroupEnum.Day, "日")
b.Totals.AddDef("合格蛋数")
b.Totals.AddDef("次蛋数")
b.Totals.AddDef("破蛋数")
b.Totals.AddExp("总蛋数","ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0)")
b.Totals.AddExp("产蛋率","(ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0) + 0.1 - 0.1) / [存栏母鸡] * 100","产蛋率(%)_存栏鸡",AggregateEnum.Average)
b.Totals.AddExp("入舍产蛋率","(ISNULL([合格蛋数],0) + ISNUll([次蛋数],0) + ISNULL([破蛋数],0) + 0.1 - 0.1) / [入舍母鸡]*100","产蛋率(%)_入舍鸡",AggregateEnum.Average)
b.Build

8楼
liuruihua 发表于:2011/11/13 13:39:00
用户已锁定!
9楼
liuruihua 发表于:2011/11/13 15:20:00
用户已锁定!
10楼
czy 发表于:2011/11/13 15:49:00
手头没开发版,帮你顶一下。
共20 条记录, 每页显示 10 条, 页签: [1] [2]

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

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