Dim Value As String =e.Sender.SelectedValue e.Form.Controls("Table1").Visible = True Select Case Value Case "全部" DataTables("客户发砖总表").LoadFilter ="" DataTables("客户发砖总表").Load DataTables("赊销销砖总表").LoadFilter ="" DataTables("赊销销砖总表").Load Dim bd1 As New GroupTableBuilder("统计表1", DataTables("客户发砖总表")) Dim fz As fxDataSource bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称 bd1.Groups.AddDef("日期","月") bd1.Groups.AddDef("司机") bd1.Totals.AddDef("本次运费","订砖发货_运费") bd1.Totals.AddDef("已发数量","订砖发货_数量") bd1.Subtotal = True '开启垂直汇总模式 bd1.SubtotalLevel = 0 '只生成总计行 fz=bd1.BuildDataSource Dim bd2 As New GroupTableBuilder("统计表1", DataTables("赊销销砖总表")) Dim lx As fxDataSource bd2.Groups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称 bd2.Groups.AddDef("日期","月") bd2.Groups.AddDef("司机") bd2.Totals.AddDef("本次运费","赊销销砖_运费") bd2.Totals.AddDef("赊砖数量","赊销销砖_数量") lx=bd2.BuildDataSource Dim nms As String() = {"年","月","司机"} '指定连接列 fz.Combine(nms,lx,nms) Tables("司机运费_Table1").DataSource =fz With DataTables("司机运费_Table1").DataCols '用表达式计算合计 .Add("总运费",Gettype(Integer),"IsNull([订砖发货_运费],0)+IsNull([赊销销砖_运费],0)") .Add("总数量",Gettype(Double),"IsNull([订砖发货_数量],0)+IsNull([赊销销砖_数量],0)") End With Dim t As Table = Tables("司机运费_Table1") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "订砖发货_运费,订砖发货_数量,赊销销砖_运费,赊销销砖_数量,总运费,总数量" g.Caption = "总计" t.SubtotalGroups.Add(g) t.Subtotal() Case "按条件查询" 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 Dim bd1 As New GroupTableBuilder("统计表1", DataTables("客户发砖总表")) Dim fz As fxDataSource bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称 bd1.Groups.AddDef("日期","月") bd1.Groups.AddDef("司机") bd1.Totals.AddDef("本次运费","订砖发货_运费") bd1.Totals.AddDef("已发数量","订砖发货_数量") bd1.Filter = Filter fz=bd1.BuildDataSource Dim bd2 As New GroupTableBuilder("统计表1", DataTables("赊销销砖总表")) Dim lx As fxDataSource bd2.Groups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于分组,并用"年"代替原名称 bd2.Groups.AddDef("日期","月") bd2.Groups.AddDef("司机") bd2.Totals.AddDef("本次运费","赊销销砖_运费") bd2.Totals.AddDef("赊砖数量","赊销销砖_数量") bd2.Filter = Filter lx=bd2.BuildDataSource Dim nms As String() = {"年","月","司机"} '指定连接列 fz.Combine(nms,lx,nms) Tables("司机运费_Table1").DataSource =fz With DataTables("司机运费_Table1").DataCols '用表达式计算合计 .Add("总运费",Gettype(Integer),"IsNull([订砖发货_运费],0)+IsNull([赊销销砖_运费],0)") .Add("总数量",Gettype(Double),"IsNull([订砖发货_数量],0)+IsNull([赊销销砖_数量],0)") End With Dim t As Table = Tables("司机运费_Table1") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "订砖发货_运费,订砖发货_数量,赊销销砖_运费,赊销销砖_数量,总运费,总数量" g.Caption = "总计" t.SubtotalGroups.Add(g) t.Subtotal() End Select
|