'要求在"进货表"勾选[A]列某行,就能将该行复制到"库存表"中,如果"商品名称"和"规格"有重复的行,将该行的[数量][金额]加到第一行. If e.DataCol.Name = "A" Then '如果变化的是[A]列 Dim Str As String '定义一个字符变量 Dim r As Row = CurrentTable.Current Dim dr,dr1 As DataRow '定义两个变量 Str = "[商品名称] = '" & r("商品名称") & "' And [规格] = '" & r("规格") & "'" '变量Str等于"商品名称"和"规格" dr = DataTables("库存表").Find(Str) '在库存表中查找Str变量 If e.NewValue = True Then dim y As New Filler y.SourceTable = DataTables("进货表") y.SourceCols = "ID,日期,商品名称,代码,规格,数量,单位,单价,金额,客户" y.DataTable = DataTables("库存表") y.DataCols = "ID,日期,商品名称,代码,规格,数量,单位,单价,金额,客户" y.ExcludeExistValue = true y.Filter = "[A] = true" '限制重复填充 y.Fill() if dr IsNot Nothing Then dr("数量") = Tables("进货表").Compute("Sum(数量)", Str & " And [A] = true") '如果找到,则对"数量"进行统计 dr("金额") = Tables("进货表").Compute("Sum(金额)", Str & " And [A] = true") '如果找到,则对"金额"进行统计 End If Else dr1 = DataTables("进货表").Find(Str & " And [A] = true") if dr1 Is Nothing Then '如果Dr1等于空时(也就是去掉[A]列的勾选),则执行下面语句删除已复制的行 DataTables("库存表").DeleteFor(Str) Else dr("数量") = Tables("进货表").Compute("Sum(数量)", Str & " And [A] = true") dr("金额") = Tables("进货表").Compute("Sum(金额)", Str & " And [A] = true") End If End If End If '
|