Foxtable(狐表)用户栏目专家坐堂 → [求助]根据多列内容生成筛选树节点如何显示人数统计


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

主题:[求助]根据多列内容生成筛选树节点如何显示人数统计

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/26 15:04:00 [只看该作者]

谢谢老师。原因找到,是“msgbox(drs)”的问题。

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/26 15:15:00 [只看该作者]

老师好。下面黄底色的代码不对,错误提示【编译错误:应为“)”】。请老师帮助修改。谢谢。

For Each s2 As String In DataTables("员工信息").GetValues("工作部门","岗位类别='" & s1 & "'","部门编码")
     Dim c2 = DataTables("职工基础信息").Compute("Count(_Identify)", ("工作部门","岗位类别='" & s2 & "'")
     Dim n1 As WinForm.TreeNode =  n.Nodes.Add(s2, s2 & " (" & c2 & "人)")
Next

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


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

 

Dim c2 = DataTables("职工基础信息").Compute("Count(_Identify)", "工作部门='" & s2 & "' and 岗位类别='" & s1 & "'")

 


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/26 17:06:00 [只看该作者]

老师好。还得请教老师,下面代码还有问题需老师帮助指导。

 问题:1、下面统计“全部的人数”的这行代码不对;

Dim Ygxx As WinForm.TreeView = e.Form.Controls("TreeView1")
Ygxx.StopRedraw    '暂停绘制目录树 
Ygxx.Nodes.Add("全部")
Ygdd.Nodes.Insert("全部","全部 (" & ("员工信息").Compute("Sum(人数)") & "人)",0)


  问题:2、下面代码能统计出“岗位类别”的人数,但黄色代码 不能统计出 “下级节点 即 ‘工作部门’ 的人数”;

    Dim Ygxx As WinForm.TreeView = e.Form.Controls("TreeView1")
    Ygxx.StopRedraw    '暂停绘制目录树 
    Ygxx.Nodes.Add("全部")
    n = Ygxx.Nodes.Add("岗类部门")
    For Each s1 As String In DataTables("员工信息").GetValues("岗位类别","","岗类编码")
        Dim c1 = DataTables("员工信息").Compute("Count(_Identify)", "岗位类别='" & s1 & "'")
        Dim n1 As WinForm.TreeNode =  n.Nodes.Add(s1, s1 & " (" & c1 & "人)")
        For Each s2 As String In DataTables("员工信息").GetValues("工作部门","岗位类别='" & s1 & "'","部门编码")
            Dim c2 = DataTables("员工信息").Compute("Count(_Identify)", "工作部门='" & s2 & "' and 岗位类别='" & s1 & "'")
            Dim n2 As WinForm.TreeNode =  n.Nodes.Add(s2, s2 & " (" & c2 & "人)")
        Next
    Next

问题:3、在窗口增加了个“刷新目录树” 按钮,但每点一次刷新,就在 “TreeView” 控件重复增加一遍所有目录树节点。点几次刷新,就在 “TreeView” 控件重复增加几遍所有目录树节点。不是刷新而是在增加。
[此贴子已经被作者于2019/6/26 17:09:15编辑过]

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


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

1、

 

Ygdd.Nodes.Insert("全部","全部 (" & Tables("员工信息").Compute("Sum(人数)") & "人)", 0)

 

2、

 

 

   Dim Ygxx As WinForm.TreeView = e.Form.Controls("TreeView1")
    Ygxx.StopRedraw    '暂停绘制目录树
    Ygxx.Nodes.Add("全部")
    n = Ygxx.Nodes.Add("岗类部门")
    For Each s1 As String In DataTables("员工信息").GetValues("岗位类别","","岗类编码")
        Dim c1 = DataTables("员工信息").Compute("Count(_Identify)", "岗位类别='" & s1 & "'")
        Dim n1 As WinForm.TreeNode =  n.Nodes.Add(s1, s1 & " (" & c1 & "人)")
        For Each s2 As String In DataTables("员工信息").GetValues("工作部门","岗位类别='" & s1 & "'","部门编码")
            Dim c2 = DataTables("员工信息").Compute("Count(_Identify)", "工作部门='" & s2 & "' and 岗位类别='" & s1 & "'")
            Dim n2 As WinForm.TreeNode =  n1.Nodes.Add(s2, s2 & " (" & c2 & "人)")
        Next
    Next

 

3、先清除再添加,如

 

Dim Ygxx As WinForm.TreeView = e.Form.Controls("TreeView1")
ygxx.Nodes.Clear


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/27 8:41:00 [只看该作者]

谢谢老师帮助。统计总人数这句【Ygdd.Nodes.Insert("全部","全部 (" & Tables("员工信息").Compute("Sum(人数)") & "人)", 0)统计不出人数来。还请老师修改。谢谢。
[此贴子已经被作者于2019/6/27 8:41:29编辑过]

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


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

Ygdd.Nodes.Insert("全部","全部 (" & Tables("员工信息").Compute("count(_Identify)") & "人)", 0)

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/27 10:43:00 [只看该作者]

谢谢老师。还有一个问题得请教老师,比如下面老师指导的代码:

For Each s As String In DataTables("员工信息").GetValues("户籍地")
    Dim c = DataTables("员工信息").compute("count(_Identify)", "户籍地='" & s & "'")
    n.Nodes.Add(s, s & "(" & c & ")")
Next

上述代码是按“户籍地”来统计个数,但“户籍地”有空白的单元格,这样统计出的数字是:【    (0人);户籍地甲(20人);户籍地乙(5人);户籍地丙(16人)】。实际的户籍地为空的是(15人),但统计的是(0人)。能否改为按姓名列来统计户籍地,即统计结果变为这样:【   (15人);户籍地甲(20人);户籍地乙(5人);户籍地丙(16人)】。请老师指导帮助。谢谢
[此贴子已经被作者于2019/6/27 10:45:57编辑过]

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


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

For Each s As String In DataTables("员工信息").GetValues("户籍地")
    If s = Nothing Then
        Dim c = DataTables("员工信息").compute("count(_Identify)", "户籍地 is nulla")
        n.Nodes.Add(s, s & "(" & c & ")")
    Else
        Dim c = DataTables("员工信息").compute("count(_Identify)", "户籍地='" & s & "'")
        n.Nodes.Add(s, s & "(" & c & ")")
    End If
Next


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/6/27 14:34:00 [只看该作者]

老师好。错误提示:"未找到列 [nulla]。"

 回到顶部
总数 25 上一页 1 2 3 下一页