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
1、小数位数就是这么设置.
2、有一个bug,导致直接统计后台数据无法设置条件,已经处理好了,下次更新不会有这个问题
公式改成如下:
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的发言:
收到,小数位数只注意计算平均值了,没考虑累积值。
下次不会有这个问题了。
我也有这个问题,原来我的窗口显示的只有两位小数,现在已经估计十位了.因为报表我控制在两位,所以懒得理.