这种情况不能用表达式计算,只能用代码,所以客户信息表的A会议物料、B促销物料等列不能是表达式列,必须改为数据列。
然后用代码计算,设置DataColChanged事件:
Dim r As DataRow = e.DataRow
Select Case e.DataCol.name
Case "客户编号"
r("各项物料费用_A会议物料") = DataTables("物料配发").Compute("Sum(物料信息_数量)","客户编号 = '" & r("客户编号") & "' And 物料类型 = 'A_会议物料'")
r("各项物料费用_B促销物料") = DataTables("物料配发").Compute("Sum(物料信息_数量)","客户编号 = '" & r("客户编号") & "' And 物料类型 = 'B_促销物料'")
End Select
建议看看:
http://www.foxtable.com/help/topics/0681.htm
http://www.foxtable.com/help/topics/1454.htm
http://www.foxtable.com/help/topics/2235.htm