以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  跨表自动取汇总数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120310)

--  作者:nbsugu_z
--  发布时间:2018/6/12 15:33:00
--  跨表自动取汇总数

专家:

  A B C 二表,建A表为项目基本信息表:有“项目名称”,列名有:项目名称、采购金额、已付款、未付款

          B表是采购明细登记表:列名有:项目名称,材料供应商,采购金额

          C表是付款明细登记表:列名有:项目名称,材料供应商,付款金额,付款日期 

   现在要做的是跨表取数碰到难题,要解决问题是建立一个表,能反应各个项目内各材料供应商的采购金额、已付款金额二项的汇总数,当然未付款金额可以用公式不说了,要跨表取汇总数,不知道代码如何写?

  

 

     


--  作者:有点甜
--  发布时间:2018/6/12 15:36:00
--  

1、不是直接跨表统计就可以了?

 

http://www.foxtable.com/webhelp/scr/1454.htm

 

http://www.foxtable.com/webhelp/scr/1472.htm

 

2、直接生成表格也可以,如

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=120267&skin=0

 


--  作者:nbsugu_z
--  发布时间:2018/6/12 17:16:00
--  最后执行出错

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("成本发票录入"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("开票方名称") \'根据型号分组
\'bd1.Totals.AddDef("数量","进货_数量") \'对数量进行统计
bd1.Totals.AddDef("价税合计金额","结算金额") \'对金额进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("付款明细表"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("收款单位") \'根据型号分组
bd2.Totals.AddDef("付款金额","已付款") \'对金额进行统计
dt2 = bd2.BuildDataSource()

dt1.Combine("开票方名称",dt2,"收款单位") \'将销售统计数据组合到进货统计数据

Tables("统计1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("统计1").DataCols  \'用表达式列计算库存数据
    .Add("未付款金额",Gettype(Integer), "IsNull([结算金额],0) - ISNULL([已付款],0) ]")
    \'.Add("未付款金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]")
End With

 

 

提示,不存在名为“统计1”table


--  作者:有点甜
--  发布时间:2018/6/12 17:19:00
--  

Tables("统计1").DataSource = dt1 \'将统计结果绑定到Table

 

改成

 

dt1.show("统计1")


--  作者:nbsugu_z
--  发布时间:2018/6/12 20:23:00
--  

老师还是不成功,这样吧,我上传个项目实例好了,您帮我看看,这是我整个开发的难点,请帮我一下。

要求我写在附件中的EXCEL表中,想利用二张表,做一个按钮或者目录树节点菜单,按一下就能出现我要求的实时汇总表。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目祝.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:要求说明.rar


--  作者:nbsugu_z
--  发布时间:2018/6/12 20:40:00
--  

老师还是不成功,这样吧,我上传个项目实例好了,您帮我看看,这是我整个开发的难点,请帮我一下。

要求我写在附件中的EXCEL表中,想利用二张表,做一个菜单按钮或者目录树节点菜单,点一下就能出现我要求的实时汇总表。


--  作者:nbsugu_z
--  发布时间:2018/6/12 20:44:00
--  还是不行

老师还是不成功,这样吧,我上传个项目实例好了,您帮我看看,这是我整个开发的难点,请帮我一下。

要求我写在附件中的EXCEL表中,想利用二张表,做一个按钮或者目录树节点菜单,按一下就能出现我要求的实时汇总表。


--  作者:有点蓝
--  发布时间:2018/6/12 21:01:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目祝.table


[此贴子已经被作者于2018/6/12 21:01:26编辑过]

--  作者:nbsugu_z
--  发布时间:2018/6/13 8:41:00
--  还是不行,求
老师,还是不行,我另做一份项目上传,想达到我EXCEL表内说明的要求,从菜单生成一个查询表格,请教正确代码,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目祝.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:要求说明.rar


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

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("采购明细"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("项目分类")
bd1.Groups.AddDef("材料供应商")
bd1.Totals.AddDef("购进金额")
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 arr() As String = {"项目分类","材料供应商"}
dt1.Combine(arr,dt2,arr)
dt1.show("统计表") \'将统计结果绑定到Table
Dim t As Table = Tables("统计表")
With t.DataTable.DataCols  \'用表达式列计算库存数据
    .Add("未付款金额",Gettype(Integer), "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 = "购进金额,付款金额,未付款金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
MainTable = t