以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=120385)

--  作者:outcat
--  发布时间:2018/6/14 7:34:00
--  统计


图片点击可在新窗口打开查看此主题相关图片如下: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


 

当第一次查询的时候,我先点了 查找,先查出单据明细,然后再点 汇总,这个正确,然后我需要改变查询时间,需要先查出单据明细,然后在点 汇总,可是这是 点 查找 会出错,提示 “未找到 列【日期】”,我想 在第二次点查询的时候,自动关闭上一次汇总的界面,改变查询时间后,先查出明细,然后点 汇总了,再出来汇总数据


 


--  作者:有点甜
--  发布时间:2018/6/14 8:56:00
--  

查询代码,第一行,改成

 

Tables("时段报表_Table1").DataSource = DataTables("单据明细")