以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码生成统计表出错(除数为0)(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10825) |
||||
-- 作者:yyzlxc -- 发布时间:2011/6/25 15:34:00 -- [求助]代码生成统计表出错(除数为0)(已解决) 在代码生成的统计表添加一列表达式统计列:计算人均加工费 Dim b As New SQLGroupTableBuilder("统计表1","日报源表") 运行出错,如何修改代码,解决除数为0的出错。
此主题相关图片如下:a.png [此贴子已经被作者于2011-6-25 22:43:50编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/6/25 15:38:00 -- b.Totals.AddExp("人均", "iif(投工 = 0, Null, 加工费/投工)") |
||||
-- 作者:yyzlxc -- 发布时间:2011/6/25 16:25:00 -- 谢谢狐爸的指点,出错的问题解决了,但是没有达到要求。 1、2010/1/2,单位1-2加工费4570元,投工155人,人均应该为29.48元,但结果为129.81元。 原因:在源表增加一列,分别计算出人均值,然后在统计表中进行累加,产生错误结果。 2、因为SQLGroupTableBuilder为后台数据分组统计,所以在统计表反映的是全部数据的统计结果,如何实现按登录用户只能看到自己的数据,而不是全部数据。 3、能否在GroupTableBuilder中添加一列表达式统计列,请指教。
此主题相关图片如下:b.png 此主题相关图片如下:c.png |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/6/25 16:31:00 -- 2、SqlGroupTableBuilder也可以设置条件的,有filter属性 3、可以增加表达式列: Dim b As New SQLGroupTableBuilder("统计表1","日报源表") b.Groups.AddDef("日期", DateGroupEnum.None) \'添加日期列用于分组 b.Groups.AddDef("单位") \'根据单位分组 b.Totals.AddDef("加工费") \'添加加工费列用于统计 b.Totals.AddDef("投工") \'添加投工列用于统计 b.Totals.AddExp("人均","[加工费]/[投工]")\'添加人均列用于计算人均加工费 b.Build \'生成统计表 DataTables("统计表1").DataCols.Add("列名", GetType(Double), “表达式") MainTable = Tables("统计表1") \'打开生成的统计表 With Tables("统计表1") .Position = .Rows.Count - 1 End With |
||||
-- 作者:yyzlxc -- 发布时间:2011/6/25 20:41:00 -- 上传文件,还是请狐爸给看看,如何达到上述要求。
|
||||
-- 作者:hhbb -- 发布时间:2011/6/25 21:40:00 -- Dim b As New SQLGroupTableBuilder("统计表1","日报源表") b.Groups.AddDef("日期", DateGroupEnum.None) \'添加日期列用于分组 b.Groups.AddDef("单位") \'根据单位分组 b.Totals.AddDef("加工费") \'添加加工费列用于统计 b.Totals.AddDef("投工") \'添加投工列用于统计 \'添加人均列用于计算人均加工费 b.Build \'生成统计表 Dim t As Table = Tables("统计表1") MainTable = t \'打开生成的统计表 t.Position = t.Rows.Count - 1 t.DataTable.DataCols.Add("人均", Gettype(Double), "iif(投工=0,null,加工费/投工)")
|
||||
-- 作者:yyzlxc -- 发布时间:2011/6/25 22:16:00 -- 谢谢hhbb老师的指教!!从数据计算的正确性已达到要求,但是要求在统计表上只显示登录用户的资料,还请指教。再次感谢hhbb老师的热情帮助!! |
||||
-- 作者:hhbb -- 发布时间:2011/6/25 22:32:00 -- Dim b As New GroupTableBuilder("统计表1",DataTables("日报源表")) b.Groups.AddDef("日期", DateGroupEnum.None) \'添加日期列用于分组 b.Groups.AddDef("单位") \'根据单位分组 b.Totals.AddDef("加工费") \'添加加工费列用于统计 b.Totals.AddDef("投工") \'添加投工列用于统计 b.Build \'生成统计表 Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("人均", Gettype(Double),"iif(投工=0,null,加工费/投工)") MainTable = t \'打开生成的统计表 t.Position = t.Rows.Count - 1
|
||||
-- 作者:hhbb -- 发布时间:2011/6/25 22:32:00 -- Dim b As New GroupTableBuilder("统计表1",DataTables("日报源表")) b.Groups.AddDef("日期", DateGroupEnum.None) \'添加日期列用于分组 b.Groups.AddDef("单位") \'根据单位分组 b.Totals.AddDef("加工费") \'添加加工费列用于统计 b.Totals.AddDef("投工") \'添加投工列用于统计 b.Build \'生成统计表 Dim t As Table = Tables("统计表1") t.DataTable.DataCols.Add("人均", Gettype(Double),"iif(投工=0,null,加工费/投工)") MainTable = t \'打开生成的统计表 t.Position = t.Rows.Count - 1
|
||||
-- 作者:yyzlxc -- 发布时间:2011/6/25 22:43:00 -- 谢谢hhbb老师,问题全部解决,还要好好消化,再次真诚感谢hhbb老师及给我帮助的狐友。 |