以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  GroupTableBuilder  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3349)

--  作者:狐哥
--  发布时间:2009/6/29 10:29:00
--  GroupTableBuilder
Select Case e.Node.Level
    case 0
        e.form.Controls("TabControl2").SelectedIndex = 0
        Dim g As New GroupTableBuilder("利润统计", DataTables("业务录入"))
        g.Groups.AddDef("月")
        g.Totals.AddDef("利润")
        g.Filter = "[年] = \'" & Value(0) & "\'"      \'这个显示下图错误,是不是公式有错?
        g.VerticalTotal = True
        g.Decimals = 2    \'小数位数是不是这样设置的?
        g.FromServer = True
        dst.DataTable = g.build(true)
        dst.Build()
        dst.AlterBackColor = Color.LightSkyBlue
        lbl.Text = value(0) & "年 " & "利润表"


图片点击可在新窗口打开查看此主题相关图片如下:g.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2009/6/29 10:47:00
--  
1、小数位数就是这么设置. 2、有一个bug,导致直接统计后台数据无法设置条件,已经处理好了,下次更新不会有这个问题
--  作者:狐哥
--  发布时间:2009/6/29 10:51:00
--  
感谢
但小数位数还是有问题.
--  作者:狐狸爸爸
--  发布时间:2009/6/29 11:06:00
--  
有啥问题?
--  作者:狐哥
--  发布时间:2009/6/29 11:14:00
--  [求助]需要激活了,再咨询几个问题

公式改成如下:

    case 0
        e.form.Controls("TabControl2").SelectedIndex = 0
        Dim g As New GroupTableBuilder("利润统计", DataTables("业务录入"))
        g.Groups.AddDef("日期",DateGroupEnum.year,"年份")
        g.Groups.AddDef("日期","月份")
        g.Totals.AddDef("利润")
        g.VerticalTotal = True
        g.Decimals = 2
        g.FromServer = True
        dst.DataTable = g.build(true)
        dst.Build()
        dst.AlterBackColor = Color.LightSkyBlue
        lbl.Text = value(0) & "年 " & "利润表"

改好后点统计,图片如下:


此主题相关图片如下:1.jpg
按此在新窗口浏览图片

点其它节点后再次回来此节点,图片又如下,统计列 年份与月份不见了


此主题相关图片如下:2.jpg
按此在新窗口浏览图片


小数点仍没有按二位来显示.

第二个节点公式:(以前都是用SQL语句来统计的:)
e.form.Controls("TabControl2").SelectedIndex = 0
        cmd.CommandText = "SELECT 月,Round(sum(利润),2) as 利润 From {业务录入} WHERE 年 = \'" & Value(0) & "\'and 业务组 = \'" & Value(1) & "\' group by 月"
        dst.DataTable = cmd.ExecuteReader()
        dst.ColumnList = "月|利润"
        dst.Build()
        dst.AlterBackColor = Color.LightSkyBlue
        dst.SetColWidth("月",40)
        dst.SetColWidth("利润",100)
        dst.GrandTotal(AggregateEnum.Sum,"总计", "利润")
        lbl.Text = value(0) & "年 " & value(1) & " 组利润表"
[此贴子已经被作者于2009-6-29 11:17:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/6/29 11:16:00
--  
收到,小数位数只注意计算平均值了,没考虑累积值。
下次不会有这个问题了。
--  作者:狐哥
--  发布时间:2009/6/29 11:19:00
--  
非常感谢!
分组列有可能与节点二公式有关,下次升级再改为新的统计公式再试试看吧.
--  作者:blackzhu
--  发布时间:2009/6/29 12:11:00
--  
以下是引用狐狸爸爸在2009-6-29 11:16:00的发言:
收到,小数位数只注意计算平均值了,没考虑累积值。
下次不会有这个问题了。

我也有这个问题,原来我的窗口显示的只有两位小数,现在已经估计十位了.因为报表我控制在两位,所以懒得理.