以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  专业报表问题(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=22836)

--  作者:fanwei1111
--  发布时间:2012/8/24 22:25:00
--  专业报表问题(已解决)

专业报表中,这个[Aggregates!数量总计.Value]值和[Aggregates!金额总计.Value]的值能进行加减乘除运算吗?如果能请指教如何相除?谢谢

[此贴子已经被作者于2012-8-26 22:56:28编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/8/25 8:29:00
--  

Dim doc As New PrintDoc
Dim rt As New prt.RenderText
Dim Agg As New prt.DataBinding.Aggregate("GroupSum") \'新定义统计的名称为GroupSum,名称随意即可.
rt.DataBinding.DataSource = BindTables("订单") \'将容器绑定到订单表
rt.DataBinding.Grouping.Expressions.Add("Fields!产品.Value") \'根据产品进行分组
rt.Text= "[Fields!产品.Value]: [Aggregates!GroupSum.Value] " \'设置打印内容
doc.body.Children.Add(rt)
agg.DataBinding = rt.DataBinding \'Agg的DataBinding属性,应该设为打印对象的DataBinding
agg.Running = 1 \'分组统计
agg.Expressi \'统计字段
doc.DataSchema.Aggregates.Add(agg)\'定义好的统计必须添加到报表的DataSchema中
doc.Preview()

 

 


--  作者:fanwei1111
--  发布时间:2012/8/25 16:53:00
--  报表中,平均净重在怎么求?

我的问题是:如图,按照如下代码平均净重不是一个数,报表的平均净重不知道怎么求?请指教!!

 

rt.Style.GridLines.All = New prt.Linedef(Color.Gray)
rt.CellStyle.Spacing.All = 1
rt.Cells(0,0).Text = "车 牌"
rt.Cells(0,1).Text = "车 型"
rt.Cells(0,2).Text = "车次合计"
rt.Cells(0,3).Text = "净重合计"
rt.Cells(0,4).Text = "毛重合计"
rt.Cells(0,5).Text = "平均净重"

 
rt.Cells(1,0).Text = "[Fields!车牌.Value]"                  
rt.Cells(1,1).Text = "[Fields!车型.Value]"
rt.Cells(1,2).Text = "[Aggregates!车次小计.Value]"
rt.Cells(1,3).Text = "[Aggregates!净重小计.Value]"
rt.Cells(1,4).Text = "[Aggregates!毛重小计.Value]"
rt.Cells(1,5).Text =  "[Aggregates!净重小计.Value] /[Aggregates!车次小计.Value]"


图片点击可在新窗口打开查看此主题相关图片如下:平均净重问题.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-8-25 17:18:56编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/8/25 17:18:00
--  

不用绑定,直接计算

rt.Cells(1,0).Text = DataTables(“xxx”).Compute("Sum(列)", "条件表达式")。

 

类似:

http://www.foxtable.com/help/topics/1240.htm

 


--  作者:fanwei1111
--  发布时间:2012/8/26 20:48:00
--  报表中小数位数怎么取舍?

 rt.Cells(i+1,4).Text = Tables("称重数据").DataTable.Compute("Sum(净重)/Sum(车次)","车牌=\'" & Names(i) & "\'")

 

用你的方法实现了数据相除,如图,非常感谢,但又有新问题:小数位数太多了,我想只要3位小数怎么办,我用format,和round方法,都不能加到上面的语句中,怎么才能解决报表中Sum(净重)/Sum(车次)的小数问题???在请您指教!!

 


图片点击可在新窗口打开查看此主题相关图片如下:小数位数多.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-8-26 21:21:17编辑过]

--  作者:czy
--  发布时间:2012/8/26 21:03:00
--  

这样不行?

 

Math.Round(DataTables(“xxx”).Compute("Sum(列)", "条件表达式"),3)

[此贴子已经被作者于2012-8-26 21:04:00编辑过]

--  作者:fanwei1111
--  发布时间:2012/8/26 22:51:00
--  

4楼、6楼你们的方法正解,问题解决了!!图片点击可在新窗口打开查看

[此贴子已经被作者于2012-8-26 22:55:52编辑过]