日期是1年的条件:
下面的代码 生成的统计表是300条不到的数据量,但是我再次汇总到我需要的表里面,用的时间切有3到4秒左右
是不是我的电脑太旧还是代码有大问题?
Filter = "日期 >= '" & dt1 & "' And 日期 <= '" & dt2 & "'And 报表名称='" & e.Node.Name & "'And [部门] ='" & e.Node.ParentNode.Name & "'"
Dim g As New GroupTableBuilder("统计表4", DataTables("管组民警数据"))
g.Groups.AddDef("部门")
g.Groups.AddDef("项目")
g.Groups.AddDef("报表名称")
g.Groups.AddDef("统计类型")
g.Groups.AddDef("数据统计项目")
g.Groups.AddDef("日期", DateGroupEnum.None)
g.Totals.AddDef("数据")
g.FromServer = True
g.Filter = Filter
g.Build()
Dim f As New Filler
f.SourceTable = DataTables("统计表4")
f.SourceCols = "部门,报表名称,数据统计项目,统计类型,项目"
f.DataTable = Tables("统计部门分析_Table1").DataTable
f.DataCols = "部门,报表名称,数据统计项目,统计类型,项目"
f.Filter = "部门='" & e.Node.ParentNode.Name & "'And 报表名称='" & e.Node.Name & "'"
f.ExcludeExistValue = True
f.ExcludeNullValue = True
f.Distinct = True
f.Append = True
f.fill
Arys = DataTables("统计表4").GetUniqueValues("部门 Is Not Null","部门","报表名称","项目","统计类型","数据统计项目")
For Each Ary As String() In Arys
Filter = "[部门] = '" & Ary(0) & "'And 报表名称='" & Ary(1) & "'And 项目 = '" & Ary(2) & "'And 统计类型 ='" & Ary(3) & "'And 数据统计项目='" & Ary(4) & "'"
Ar = Tables("统计部门分析_Table1").DataTable.Find(Filter)
If Ar IsNot Nothing Then
Dim s() As String = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}
For i As Integer = 0 To s.Length - 1
dt1 = New Date(y, i+1, 1)
dt2 = New Date(y, i+1, Date.DaysInMonth(y,i+1)) '获取该月的最后一天
Filter1 = "日期 >= '" & dt1 & "' And 日期 <= '" & dt2 & "'And [部门] = '" & Ary(0) & "' And 报表名称='" & Ary(1) & "'And 项目 = '" & Ary(2) & "'And 统计类型 ='" & Ary(3) & "'And 数据统计项目='" & Ary(4) & "'"
Val= DataTables("统计表4").Compute("Sum(数据)",Filter1)
If Val > 0 Then
ar(s(i)) = Val
Else
Ar(s(i)) = 0
End If
Next
End If
Next