以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179937)

--  作者:胡噜胡噜毛
--  发布时间:2022/9/19 14:49:00
--  合计
Dim t As Table = Tables("费用")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear() 
g = New Subtotalgroup
    g.Aggregate = AggregateEnum.Sum
    g.GroupOn = "*"
    g.Caption = "合计"
    t.SubtotalGroups.Add(g)
Dim a = Tables("费用").Compute("Sum(收入)")
Dim b = Tables("费用").Compute("Sum(支出)")
Dim cnt = Tables("费用").Rows.Count(True) - 1
Dim r As Row = Tables("费用").Rows(cnt,True)
r("收入") = a
r("支出") = b
If a <> 0 Then r("结余") = a - b

设置一个合计行,收入和支出列为合计,结余列为收入-支出,怎么不显示?

--  作者:有点蓝
--  发布时间:2022/9/19 14:55:00
--  
请上传实例测试
--  作者:胡噜胡噜毛
--  发布时间:2022/9/19 15:03:00
--  
就是设计一个合计模式,合计的是收入和支出列。但是结余列需要用收入-支出,代码应该怎么写呢?
--  作者:有点蓝
--  发布时间:2022/9/19 15:09:00
--  
加上t.Subtotal() 


--  作者:胡噜胡噜毛
--  发布时间:2022/9/19 15:28:00
--  
成功啦~如果还想按照年份分别合计一下,应该怎么修改呢

Dim t As Table = Tables("费用")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear() 
g = New Subtotalgroup
    g.Aggregate = AggregateEnum.Sum
    g.GroupOn = "*"
   g.Caption = "合计"
    t.SubtotalGroups.Add(g)
  t.Subtotal()
Dim a = Tables("费用").Compute("Sum(收入)")
Dim b = Tables("费用").Compute("Sum(支出)")
Dim cnt = Tables("费用").Rows.Count(True) - 1
Dim r As Row = Tables("费用").Rows(cnt,True)
r("收入") = a
r("支出") = b
If a <> 0 Then r("结余") = a - b

--  作者:有点蓝
--  发布时间:2022/9/19 15:51:00
--  
添加多个分组:http://www.foxtable.com/webhelp/topics/2636.htm
--  作者:胡噜胡噜毛
--  发布时间:2022/9/19 16:03:00
--  
为什么一打开就提示“不能在汇总模式下显示总计行!”
--  作者:有点蓝
--  发布时间:2022/9/19 16:06:00
--  
因为......所以......


--  作者:胡噜胡噜毛
--  发布时间:2022/9/19 16:27:00
--  
我把代码修改为这个样子,是可以执行的,但是关闭重新打开项目之后,就会提示“不能在汇总模式下显示总计行!”  进入“费用”表后设置的这些汇总也不自动显示


Dim t As Table = Tables("费用")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()

g = New Subtotalgroup
g.GroupOn = "年份"
g.TotalOn = "收入_金额,支出_金额"
g.DateGroup = DateGroupEnum.Day
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.GroupOn = "*"
g.TotalOn = "收入_金额,支出_金额"
t.SubtotalGroups.Add(g) 

t.Subtotal() 

Dim r As Row
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup Then
        r("结余") = r("收入_金额") - r("支出_金额")
    End If
Next

--  作者:有点蓝
--  发布时间:2022/9/19 16:34:00
--  
我测试没有问题,请上传实例说明

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