Foxtable(狐表)用户栏目专家坐堂 → 表事件里不能使用聚合函数吗?


  共有10353人关注过本帖树形打印复制链接

主题:表事件里不能使用聚合函数吗?

帅哥哟,离线,有人找我吗?
Tommy
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:61 积分:487 威望:0 精华:1 注册:2011/6/20 16:02:00
表事件里不能使用聚合函数吗?  发帖心情 Post By:2011/7/5 17:00:00 [只看该作者]

我在子表的DataColChanged事件里写了一行这样的代码:

e.DataRow.GetParentRow("主表")("Total") = Sum(DataTables("子表").DataRows("Amount"))

按确定时报错了:  编译错误:Name "Sum" is not declared.

表事件里不能使用聚合函数吗?有什么好的解决方法?


 回到顶部
帅哥哟,离线,有人找我吗?
hhbb
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/7/5 17:03:00 [只看该作者]

Compute

根据条件统计表中数据。

语法:

Compute(Expression, Filter)

Expression: 要计算的表达式,使用聚合函数进行统计。
Filter:    可选参数,用于设置计算条件,
请参考表达式的运算符和函数条件表达式

在执行以下示例之前,请打开CaseStudy目录下的示例文件"统计演示.Table"。

示例一

计算总的销售数量和金额:

Dim Total As Integer
Dim
Amount As Double
With
DataTables("订单")
    Total = .Compute(
"Sum(数量)")
    Amount = .Compute(
"Sum(金额)")
End
With
Output.Show(
"数量:" & Total)
Output.Show(
"金额:" &
Amount)

示例二

计算产品PD01的销售数量:

Dim Total As Long
Total =
DataTables("订单").Compute("Sum(数量)", "产品 = 'PD01'"
)
Output.Show(Total)

示例三

计算每个客户的订购数量:

Dim dt As DataTable = DataTables("订单")
Dim
Total As Integer
Dim
Customers As List(Of String)
Customers = dt.GetUniqueValues("",
"客户")
For Each
Customer As String In Customers
    Total = dt.Compute("Sum(数量)", "[客户] = '" & Customer & "'")
    Output
.Show(Customer & ":" & Total
)
Next

上述代码中,Filter参数分成了三部分,各部分用运算符&连接起来:

"[客户] = '" & Customer & "'"

如果客户名称为CS01,那么三部分组合后,Filter参数就等于:

"[客户] = 'CS01'"

通过代码动态合成条件表达式,是一种基本的技能,大家务必要掌握。


 回到顶部