例如要计算某个产品的销售数量,要计算的产品名称由用户输入,假定输入的结果保存在全局变量Vars("产品")中:
Dim Sum As Integer
Sum = DataTables("订单").Compute("Sum(数量)", "[产品] = '" & Vars("产品") & "'")
Compute的第二个参数为计算条件表达式,该表达式分为三部分:
"[产品] = '" & Vars("产品") & "'"
假定全局变量Vars("产品")的值为PD01, 组合三部分的内容后,这个表达式就等效于:
"[产品] = 'PD01'"
假定表A和表B都有品名、型号两列,我们在表A中选择了一行,希望从表B中找出相同品名、规格的行:
Dim dr1 As DataRow = Tables("表A").Current.DataRow
Dim dr2 As DataRow
dr2 = DataTables("表B").Find("[品名] = '" & dr1("品名") & "'And [规格] = '" & dr1("规格") & "'")
上面代码的最后一行,初看非常难以理解。
为便于理解,我们首先来看看正常的查找表达式:
"[品名] = '要找品名' And [规格] = '要找的规格'"
其中红色的部分要被dr1中的实际的品名和规格代替,所以最终的表达式成了:
"[品名] = '" & dr1("品名") & "'And [规格] = '" & dr1("规格") & "'"