Foxtable(狐表)用户栏目专家坐堂 → 请教分类汇总句法。


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

主题:请教分类汇总句法。

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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
请教分类汇总句法。  发帖心情 Post By:2019/5/29 8:40:00 [只看该作者]

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 = "proc_lab"
g.TotalOn = "proc_zbsj,proc_jbsj,proc_gshj"
g.Aggregate = AggregateEnum.count 
g.TotalOn = "proc_bh"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)
请教:我希望在同一行实现对出勤人数计数,对出勤时间汇总,的分类显示方式;
请问这语句应该怎么写?
谢谢!



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


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


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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
谢谢你:有点甜。  发帖心情 Post By:2019/5/29 9:22:00 [只看该作者]

谢谢你指引:有点甜。

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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
分类汇总再请教!  发帖心情 Post By:2019/5/29 10:49:00 [只看该作者]

Dim t As Table = Tables("proc97")
Dim v1,v2,v3,v4,f1 As String
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False  '分组行不在数据之前
t.TreeVisible = False  '显示目录树
t.SpillNode = False  '
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "proc_zw" '"*"
'g.TotalOn = "proc_zbsj,proc_jbsj,proc_gshj"
g.Caption = "{0}" '"总计"
t.SubtotalGroups.Add(g)
t.Subtotal()
Dim r1 As Row
For i1 As Integer =0 To t.Rows.Count(True) - 1
    r1=t.Rows(i1,True)
    If r1.IsGroup Then
        f1="proc_zw = '"& r1("proc_zw") &"'"       ‘按员工职务分类汇总
        r1("proc_bh")=t.Compute("count(proc_bh)",f1)
        r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1)
        r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1)
        r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1)
    End If
Next
我使用以上代码,但输出结果全是0,还请专家指教哪里写的不对?


图片点击可在新窗口打开查看此主题相关图片如下:出勤.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/5/29 10:49:34编辑过]

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


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

改成

 

f1="proc_zw = '"& r1("姓名列") &"'" 


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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
谢谢你,有点甜!  发帖心情 Post By:2019/5/29 11:33:00 [只看该作者]

哦,原来是这样处理!

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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
分类汇总再三请教!  发帖心情 Post By:2019/5/29 11:56:00 [只看该作者]

Dim t As Table = Tables("proc97")
Dim v1,v2,v3,v4,f1,f2 As String
Dim r1 As Row
Dim g As Subtotalgroup
Dim g1 As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False  '分组行不在数据之前
t.TreeVisible = False  '显示目录树
t.SpillNode = False  '

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "proc_zw"       '按职务分类
g.Caption = "{0}" '"总计"
t.SubtotalGroups.Add(g)

g1 = New Subtotalgroup
g1.Aggregate = AggregateEnum.Sum
g1.GroupOn = "proc_bm"    '按部门分类
g1.Caption = "{0}" 
t.SubtotalGroups.Add(g1)
t.Subtotal()
For i1 As Integer =0 To t.Rows.Count(True) - 1
    r1=t.Rows(i1,True)
    If r1.IsGroup Then
        f1="proc_zw = '"& r1("proc_xm") &"'"
        r1("proc_bh")=t.Compute("count(proc_bh)",f1)
        r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1)
        r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1)
        r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1)
    End If
Next
我用以上代码,只能实现一个组的分类计数合计
我测试性操作几次,只能得到一种分类汇总结果。

不知道如何对多个分组进行类似操作,还请专家再指教! 
非常感谢!


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


加好友 发短信
等级:一尾狐 帖子:431 积分:4325 威望:0 精华:0 注册:2017/3/20 21:08:00
谢谢专家,我已经找到答案了。  发帖心情 Post By:2019/5/29 13:03:00 [只看该作者]

For i1 As Integer =0 To t.Rows.Count(True) - 1
    r1=t.Rows(i1,True)
    If r1.IsGroup Then
'messagebox.show(r1.level)
        Select Case r1.Level    ’我就是在找这个属性
            Case 1
                f1="proc_zw = '"& r1("proc_xm") &"'"
                r1("proc_bh")=t.Compute("count(proc_bh)",f1)
                r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1)
                r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1)
                r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1)
            Case 0
                f1="proc_bm = '"& r1("proc_xm") &"'"
                r1("proc_bh")=t.Compute("count(proc_bh)",f1)
                r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1)
                r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1)
                r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1)
        End Select
    End If
Next

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


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


 回到顶部