Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
Tommy 发表于:2011/7/5 17:00:00

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

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

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

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

2楼
hhbb 发表于: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'"

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

共2 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02832 s, 2 queries.