Foxtable(狐表)用户栏目专家坐堂 → 如何在设计的窗口显示临时统计表


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

主题:如何在设计的窗口显示临时统计表

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
如何在设计的窗口显示临时统计表  发帖心情 Post By:2018/6/23 9:55:00 [只看该作者]

有一个分组汇总代码生成的临时表“统计表A”,如何能在设计的窗口中显示此表全部内容,试了几次没成功,求代码

 

 


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/23 10:42:00 [只看该作者]

e.form.controls("table1").table.DataSource = b.BuildDataSource



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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2018/6/23 12:00:00 [只看该作者]

以下是引用有点蓝在2018/6/23 10:42:00的发言:
e.form.controls("table1").table.DataSource = b.BuildDataSource


Case "项目材料结算汇总表"
         Dim bd1 As New sqlGroupTableBuilder("统计表1","采购开piao登记")
        bd1.C
        Dim dt1 As fxDataSource
        bd1.Groups.AddDef("项目分类")
        bd1.Groups.AddDef("材料供应商")
        bd1.Totals.AddDef("购进金额","已开piao_金额")
        bd1.Totals.AddDef("fa piao数量","已开piao_数量")
        bd1.Totals.AddExp("说明", "说明", AggregateEnum.max)
                  
        dt1 = bd1.BuildDataSource()
       
        Dim bd2 As New GroupTableBuilder("统计表2",DataTables("付款明细表"))
        Dim dt2  As fxDataSource
        bd2.Groups.AddDef("项目分类")
        bd2.Groups.AddDef("材料供应商")
        bd2.Totals.AddDef("付款金额","已付金额")
        dt2 = bd2.BuildDataSource()
       
        Dim bd3 As New GroupTableBuilder("统计表3",DataTables("材料入库登记"))
        Dim dt3  As fxDataSource
        bd3.Groups.AddDef("项目分类")
        bd3.Groups.AddDef("材料供应商")
        bd3.Totals.AddDef("数量","收料结算_数量")
        bd3.Totals.AddDef("金额","收料结算_金额")
        dt3 = bd3.BuildDataSource()
       
        Dim arr() As String = {"项目分类","材料供应商"}
        dt1.Combine(arr,dt2,arr)
        dt1.Combine(arr,dt3,arr)
       
        dt1.show("统计表") '将统计结果绑定到Table
       
        Dim t As Table = Tables("统计表")
        With t.DataTable.DataCols  '用表达式列计算库存数据
            .Add("按fa piao未付款金额",Gettype(Double), "IsNull([已开piao_金额],0) - ISNULL([已付金额],0)")
            .Add("未开piao金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已开piao_金额],0)")
            .Add("按收料未付款金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已付金额],0)")
        End With
       
        With Tables("统计表")
            .MergeMode = MergeModeEnum.Standard
            .MergeCols.Clear()
            .MergeCols.Add("项目分类")
            .MergeCols.Add("材料供应商")
            .MergeSort = "项目分类,材料供应商"
            .AllowMerge = True
        End With
       
        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 = "收料结算_数量,收料结算_金额,已开piao_金额,已开piao_数量,已付金额,按fa piao未付款金额,按收料未付款金额"
        g.Caption = "总计"
        t.SubtotalGroups.Add(g)
       
        t.Subtotal()
        MainTable = t
       
        '以下显示格式
        Tables("统计表").cols("已付金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("已开piao_金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("已开piao_数量").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("按fa piao未付款金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("收料结算_数量").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("收料结算_金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("按收料未付款金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("未开piao金额").DataCol.setFormat("#,###.00")
       
        Tables("统计表").SetColVisibleWidth("项目分类|100|材料供应商|300|收料结算_数量|100|收料结算_金额|120|已开piao_数量|100|已开piao_金额|120|已付金额|120|按fa piao未付款金额|120|按收料未付款金额|120|未开piao金额|120|说明|120")
       
        e.form.controls("table1").Table.DataSource = b.BuildDataSource       
        '结束

 

 

      不成功,以上代码在目录树菜单中的代码,如何修改使之能在窗口中显示? 


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/23 12:10:00 [只看该作者]

……

Dim arr() As String = {"项目分类","材料供应商"}
dt1.Combine(arr,dt2,arr)
dt1.Combine(arr,dt3,arr)

Dim t As Table = e.form.controls("table1").Table
t.DataSource  = dt1.BuildDataSource

With t.DataTable.DataCols  '用表达式列计算库存数据
    .Add("按fa piao未付款金额",Gettype(Double), "IsNull([已开piao_金额],0) - ISNULL([已付金额],0)")
    .Add("未开piao金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已开piao_金额],0)")
    .Add("按收料未付款金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已付金额],0)")
End With

……

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2018/6/23 13:54:00 [只看该作者]

代码提示:BuildDataSource不是fxDataSource   成员

t.DataSource  = dt1.BuildDataSourc
代码错误

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/23 14:53:00 [只看该作者]

t.DataSource  = dt1

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2018/6/23 19:41:00 [只看该作者]

Case "项目材料结算汇总表"
        Dim bd1 As New sqlGroupTableBuilder("统计表1","采购开piao登记")
        bd1.C
        Dim dt1 As fxDataSource
        bd1.Groups.AddDef("项目分类")
        bd1.Groups.AddDef("材料供应商")
        bd1.Totals.AddDef("购进金额","已开piao_金额")
        bd1.Totals.AddDef("fa piao数量","已开piao_数量")
       
        bd1.Totals.AddExp("说明", "说明", AggregateEnum.max)
       
       
       
       
       
        dt1 = bd1.BuildDataSource()
       
        Dim bd2 As New GroupTableBuilder("统计表2",DataTables("付款明细表"))
        Dim dt2  As fxDataSource
        bd2.Groups.AddDef("项目分类")
        bd2.Groups.AddDef("材料供应商")
        bd2.Totals.AddDef("付款金额","已付金额")
        dt2 = bd2.BuildDataSource()
       
        Dim bd3 As New GroupTableBuilder("统计表3",DataTables("材料入库登记"))
        Dim dt3  As fxDataSource
        bd3.Groups.AddDef("项目分类")
        bd3.Groups.AddDef("材料供应商")
        bd3.Totals.AddDef("数量","收料结算_数量")
        bd3.Totals.AddDef("金额","收料结算_金额")
        dt3 = bd3.BuildDataSource()
       
        Dim arr() As String = {"项目分类","材料供应商"}
        dt1.Combine(arr,dt2,arr)
        dt1.Combine(arr,dt3,arr)
       
        Dim t As Table = e.form.controls("table1").Table
        t.DataSource  = dt1
        
                
             With t.DataTable.DataCols  '用表达式列计算库存数据
            .Add("按fa piao未付款金额",Gettype(Double), "IsNull([已开piao_金额],0) - ISNULL([已付金额],0)")
            .Add("未开piao金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已开piao_金额],0)")
            .Add("按收料未付款金额",Gettype(Double), "IsNull([收料结算_金额],0) - ISNULL([已付金额],0)")
        End With
       
        With Tables("统计表")
            .MergeMode = MergeModeEnum.Standard
            .MergeCols.Clear()
            .MergeCols.Add("项目分类")
            .MergeCols.Add("材料供应商")
            .MergeSort = "项目分类,材料供应商"
            .AllowMerge = True
        End With
       
        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 = "收料结算_数量,收料结算_金额,已开piao_金额,已开piao_数量,已付金额,按fa piao未付款金额,按收料未付款金额"
        g.Caption = "总计"
        t.SubtotalGroups.Add(g)
       
        t.Subtotal()
        MainTable = t
       
        '以下显示格式
        Tables("统计表").cols("已付金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("已开piao_金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("已开piao_数量").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("按fa piao未付款金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("收料结算_数量").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("收料结算_金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("按收料未付款金额").DataCol.setFormat("#,###.00")
        Tables("统计表").cols("未开piao金额").DataCol.setFormat("#,###.00")
       
        Tables("统计表").SetColVisibleWidth("项目分类|100|材料供应商|300|收料结算_数量|100|收料结算_金额|120|已开piao_数量|100|已开piao_金额|120|已付金额|120|按fa piao未付款金额|120|按收料未付款金额|120|未开piao金额|120|说明|120")
        
         执行代码显示:找不到名称为“table1的控件

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/24 23:03:00 [只看该作者]

你的窗口table的名称是什么?红色就改成什么

 

Dim t As Table = Forms("窗口1").controls("table1").Table


 回到顶部