以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助如何自动实现表B的统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127111)

--  作者:rongping
--  发布时间:2018/11/6 8:55:00
--  求助如何自动实现表B的统计

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

如题,求助版主如何在输完表A的数据后自动实现表B的统计表?


--  作者:y2287958
--  发布时间:2018/11/6 9:25:00
--  
Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddExp("排序","1")
jb.AddExp("项目名称","颜色")
jb.AddCols("单价","数量","折扣")
jb.AddExp("金额","单价*数量*折扣")
jb.AddExp("备注","\'\'")

Dim jb1 As New SQLJoinTableBuilder("查询表1","表A")
jb1.AddExp("排序","2")
jb1.AddExp("项目名称","添加剂")
jb1.AddCols("添加剂价格","添加剂数量")
jb1.AddExp("折扣","1")
jb1.AddExp("金额","添加剂价格*添加剂数量")
jb1.AddExp("备注","\'\'")

Dim jb2 As New SQLJoinTableBuilder("查询表1","表A")
jb2.AddExp("排序","3")
jb2.AddExp("项目名称","合成剂")
jb2.AddCols("合成剂价格","合成剂数量")
jb2.AddExp("折扣","1")
jb2.AddExp("金额","合成剂价格*合成剂数量")
jb2.AddExp("备注","\'\'")

jb.Union(jb1)
jb.Union(jb2)
jb.Build()
Dim dr As DataRow = DataTables("查询表1").AddNew
dr("项目名称") = "总计"
dr("金额") = DataTables("查询表1").Compute("Sum(金额)")
Tables("查询表1").Cols.Remove("排序")
Tables("查询表1").AutoSizeCols
MainTable = Tables("查询表1")

--  作者:rongping
--  发布时间:2018/11/6 9:52:00
--  
以下是引用y2287958在2018/11/6 9:25:00的发言:
Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddExp("排序","1")
jb.AddExp("项目名称","颜色")
jb.AddCols("单价","数量","折扣")
jb.AddExp("金额","单价*数量*折扣")
jb.AddExp("备注","\'\'")

Dim jb1 As New SQLJoinTableBuilder("查询表1","表A")
jb1.AddExp("排序","2")
jb1.AddExp("项目名称","添加剂")
jb1.AddCols("添加剂价格","添加剂数量")
jb1.AddExp("折扣","1")
jb1.AddExp("金额","添加剂价格*添加剂数量")
jb1.AddExp("备注","\'\'")

Dim jb2 As New SQLJoinTableBuilder("查询表1","表A")
jb2.AddExp("排序","3")
jb2.AddExp("项目名称","合成剂")
jb2.AddCols("合成剂价格","合成剂数量")
jb2.AddExp("折扣","1")
jb2.AddExp("金额","合成剂价格*合成剂数量")
jb2.AddExp("备注","\'\'")

jb.Union(jb1)
jb.Union(jb2)
jb.Build()
Dim dr As DataRow = DataTables("查询表1").AddNew
dr("项目名称") = "总计"
dr("金额") = DataTables("查询表1").Compute("Sum(金额)")
Tables("查询表1").Cols.Remove("排序")
Tables("查询表1").AutoSizeCols
MainTable = Tables("查询表1")
 
再问一下这是写在那个事件里面的?


--  作者:y2287958
--  发布时间:2018/11/6 9:55:00
--  
命令窗口,按钮……等等需要用的地方
--  作者:rongping
--  发布时间:2018/11/6 9:55:00
--  
以下是引用y2287958在2018/11/6 9:55:00的发言:
命令窗口,按钮……等等需要用的地方

谢谢!


--  作者:有点甜
--  发布时间:2018/11/6 9:57:00
--  

1、可以写到maintablechanged

 

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

 

2、可以做一个按钮,然后放入代码


--  作者:rongping
--  发布时间:2018/11/6 13:47:00
--  
为什么我再继续添加颜色和其它数据时,统计出来的结果不对呢?
--  作者:有点甜
--  发布时间:2018/11/6 14:53:00
--  
以下是引用rongping在2018/11/6 13:47:00的发言:
为什么我再继续添加颜色和其它数据时,统计出来的结果不对呢?

 

代码改成下面

 

DataTables("表A").save

Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddExp("排序","1")
jb.AddExp("项目名称","颜色")
jb.AddCols("单价","数量","折扣")
jb.AddExp("金额","单价*数量*折扣")
jb.AddExp("备注","\'\'")


Dim jb1 As New SQLJoinTableBuilder("查询表1","表A")
jb1.AddExp("排序","2")
jb1.AddExp("项目名称","添加剂")
jb1.AddCols("添加剂价格","添加剂数量")
jb1.AddExp("折扣","1")
jb1.AddExp("金额","添加剂价格*添加剂数量")
jb1.AddExp("备注","\'\'")


Dim jb2 As New SQLJoinTableBuilder("查询表1","表A")
jb2.AddExp("排序","3")
jb2.AddExp("项目名称","合成剂")
jb2.AddCols("合成剂价格","合成剂数量")
jb2.AddExp("折扣","1")
jb2.AddExp("金额","合成剂价格*合成剂数量")
jb2.AddExp("备注","\'\'")


jb.Union(jb1,True)
jb.Union(jb2,True)
jb.Build()
\'Dim dr As DataRow = DataTables("查询表1").AddNew
\'dr("项目名称") = "总计"
\'dr("金额") = DataTables("查询表1").Compute("Sum(金额)")
Tables("查询表1").Cols.Remove("排序")
Tables("查询表1").AutoSizeCols
MainTable = Tables("查询表1")

Dim t As Table = Tables("查询表1")
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 = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()


--  作者:rongping
--  发布时间:2018/11/6 15:45:00
--  
以下是引用有点甜在2018/11/6 14:53:00的发言:

 

代码改成下面

 

DataTables("表A").save

Dim jb As New SQLJoinTableBuilder("查询表1","表A")
jb.AddExp("排序","1")
jb.AddExp("项目名称","颜色")
jb.AddCols("单价","数量","折扣")
jb.AddExp("金额","单价*数量*折扣")
jb.AddExp("备注","\'\'")


Dim jb1 As New SQLJoinTableBuilder("查询表1","表A")
jb1.AddExp("排序","2")
jb1.AddExp("项目名称","添加剂")
jb1.AddCols("添加剂价格","添加剂数量")
jb1.AddExp("折扣","1")
jb1.AddExp("金额","添加剂价格*添加剂数量")
jb1.AddExp("备注","\'\'")


Dim jb2 As New SQLJoinTableBuilder("查询表1","表A")
jb2.AddExp("排序","3")
jb2.AddExp("项目名称","合成剂")
jb2.AddCols("合成剂价格","合成剂数量")
jb2.AddExp("折扣","1")
jb2.AddExp("金额","合成剂价格*合成剂数量")
jb2.AddExp("备注","\'\'")


jb.Union(jb1,True)
jb.Union(jb2,True)
jb.Build()
\'Dim dr As DataRow = DataTables("查询表1").AddNew
\'dr("项目名称") = "总计"
\'dr("金额") = DataTables("查询表1").Compute("Sum(金额)")
Tables("查询表1").Cols.Remove("排序")
Tables("查询表1").AutoSizeCols
MainTable = Tables("查询表1")

Dim t As Table = Tables("查询表1")
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 = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()

好的