Foxtable(狐表)用户栏目专家坐堂 → 统计


  共有2613人关注过本帖树形打印复制链接

主题:统计

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/11 20:42:00 [显示全部帖子]

请上传具体foxtable项目说明你的问题。

 

如果是多列的链接,参考 http://www.foxtable.com/webhelp/scr/2392.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/11 22:29:00 [显示全部帖子]

执行下面代码,如果有问题,上传实例测试。

 

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("已发数量","订砖发货_数量")
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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/12 8:56:00 [显示全部帖子]

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

 回到顶部