加上给GetUniqueValues和Compute加上日期条件就行啊:
Dim khs As List(of String) = DataTables("出口处理").GetUniqueValues("用盘单位 > ''", "用盘单位")
Dim pds As List(of String) = DataTables("出口处理").GetUniqueValues("品种1 > ''", "品种1")
Dim dt1 AS Date = "#02/01/2011" '开始日期
Dim dt2 AS Date = "#12/31/2011" '结束日期
Dim rf As String = " And 日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Dim dt AS New DataTableBuilder("处理数量")
dt.AddDef("客户", Gettype(String), 32)
For i As Integer = 2 To 8
Dim lst As List(of String) = DataTables("出口处理").GetUniqueValues("品种" & i & " > ''"
& rf , "品种" & i)
For Each nm AS String In Lst
If pds.Contains(nm) = False
pds.Add(nm)
End If
Next
Next
For Each pd As String In pds
dt.AddDef(pd, Gettype(Integer))
Next
dt.Build
Dim tb AS Table = Tables("处理数量")
Dim Sum AS Integer
For Each kh As String In khs
Dim r As Row = tb.AddNew()
r("客户") = kh
For Each pd As String In pds
sum = 0
For i As Integer = 1 To 8
sum = sum + DataTables("出口处理").Compute("Sum(数量" & i & ")", "品种" & i & " = '" & pd & "' And 用盘单位 = '" & kh & "'" & rf)
Next
r(pd) = sum
Next
Next
Dim sr As Row = tb.AddNew()
sr("客户") = "合计"
For Each pd As String In pds
sum = 0
For Each r AS Row In tb.Rows
sum = sum + r(pd)
Next
sr(pd) = sum
Next
[此贴子已经被作者于2011-3-26 8:03:54编辑过]