此主题相关图片如下:1.png

查找代码:
If Tables("时段报表_Table1").Current IsNot Nothing Then
e.Form.Controls("Table1").Visible = True
Dim Filter As String
With e.Form.Controls("供应商")
If .Value IsNot Nothing Then
Filter = "供应商 = '" & .Value & "'"
End If
End With
With e.Form.Controls("StartDate")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 >= #" & .Value & "#"
End If
End With
With e.Form.Controls("EndDate")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 <= #" & .Value & "#"
End If
End With
Tables("时段报表_Table1").Filter = Filter
End If
Tables("时段报表_Table1").Cols("总数量").GrandTotal = True
Tables("时段报表_Table1").Cols("总金额").GrandTotal = True
Tables("时段报表_Table1").GrandTotal = True
此主题相关图片如下:2.png

汇总代码
Dim Filter As String = "1=1"
Dim g As New CrossTableBuilder("统计表1",DataTables("采购总表"))
With e.Form.Controls("供应商")
If .Value IsNot Nothing Then
Filter = "供应商 = '" & .Value & "'"
End If
End With
With e.Form.Controls("StartDate")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 >= #" & .Value & "#"
End If
End With
With e.Form.Controls("EndDate")
If .Value IsNot Nothing Then
If Filter >"" Then
Filter = Filter & " And "
End If
Filter = Filter & "日期 <= #" & .Value & "#"
End If
End With
g.Filter = Filter
vars("filter") = Filter
Dim cg As fxDataSource
g.HGroups.AddDef("供应商")
g.VGroups.AddDef("日期",DateGroupEnum.Year, "{0}年")
g.VGroups.AddDef("日期", "{0}月")
g.Totals.AddDef("总数量","数量")
g.Totals.AddDef("总金额","金额")
g.Totals.AddDef("日期",AggregateEnum.Count,"单数")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
cg=g.BuildDataSource
Tables("时段报表_Table1").DataSource = cg
Tables("时段报表_Table1").Cols("供应商").Width = 120
当第一次查询的时候,我先点了 查找,先查出单据明细,然后再点 汇总,这个正确,然后我需要改变查询时间,需要先查出单据明细,然后在点 汇总,可是这是 点 查找 会出错,提示 “未找到 列【日期】”,我想 在第二次点查询的时候,自动关闭上一次汇总的界面,改变查询时间后,先查出明细,然后点 汇总了,再出来汇总数据