Dim dtb As New DataTableBuilder("分账库存统计") dtb.AddDef("货物大类", Gettype(String)) dtb.AddDef("客户名称", Gettype(String)) dtb.AddDef("货物种类", Gettype(String)) dtb.AddDef("日期", Gettype(Date)) dtb.AddDef("库存", Gettype(Decimal)) dtb.Build() For Each nm() As String In DataTables("进出库信息记录").GetValues("客户名称|货物种类") Dim dr As DataRow = DataTables("分账库存统计").AddNew() dr("客户名称") = nm(0) dr("货物种类") = nm(1) Dim mr As DataRow mr = DataTables("进出库信息记录").find("[客户名称] = '" & nm(0) & "' And[货物种类] = '" & nm(1) & "'","[_SortKey] Desc") dr("日期") = mr("日期") dr("库存") = mr("库存") dr("货物大类") = mr("货物大类") Next MainTable= Tables("分账库存统计") Dim Filter As String With e.Form.Controls("ComboBox1") If .Value IsNot Nothing Then Filter = " 货物大类 = '" & .Value & "'" End If End With With e.Form.Controls("DateTimePicker1") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "日期 >= #" & .Value & "#" End If End With With e.Form.Controls("DateTimePicker2") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "日期 <= #" & .Value & "#" End If End With If Filter > "" Then Tables("分账库存统计").Filter = Filter End If Dim g As New Subtotalgroup g = New Subtotalgroup g.GroupOn = "客户名称" g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "货物大类" g.TotalOn = "库存" g.Caption = "{0} 小计" With Tables("分账库存统计") .SubtotalGroups.Add(g) End With g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "库存" g.Caption = "总计" With Tables("分账库存统计") .SubtotalGroups.Add(g) .Subtotal() End With With Tables("分账库存统计") .MergeMode = MergeModeEnum.free .MergeCols.Add("货物大类") .MergeCols.Add("客户名称") .AllowMerge = True End With
|