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


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

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

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


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

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


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


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

老师好。再请教老师,现在单元格为空的能统计出数字了,但点击内容为空的筛选树节点时,筛选出的是空行。如何能实现点击内容为空的筛选树节点时,能筛选出该列内容为空的所有行来。谢谢。

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


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

1、贴出你的筛选代码;

 

2、判断一下值是不是空,如果是空,就合成 is null 的查询条件即可。


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


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

老师好。筛选树的AfterLoad事件代码就是老师指导的15楼、21楼的代码。筛选树的NodeMouseDoubleClick事件代码如下:

Dim Filter As String = ""
Dim dr As DataRow = e.Node.DataRow       '声明变量dr为行类型,初值为生成此节点的行
Dim tbl As Table = Tables("员工信息")    '声明变量tbl为表类型,初值为"员工信息"表
'Dim ary = e.node.fullpath.split("\")
Dim ary = e.node.fullName.split("\")
If e.node.level > 0 '第二层节点开始
    Select Case ary(0)
        Case "户籍地"
            Filter = "户籍地 = '" & ary(1) & "'"
        Case "岗类部门"
            If e.node.level = 1 Then
                Filter = "岗位类别 = '" & ary(1) & "'"
            Else
                Filter = "岗位类别 = '" & ary(1) & "' and 工作部门 = '" & ary(2) & "'"
            End If
    End Select
    tbl.Filter = filter
'ElseIf e.node.Text = "全部"
ElseIf e.node.Name = "全部"
    tbl.Filter = ""
End If
[此贴子已经被作者于2019/6/27 18:20:19编辑过]

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


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

Dim Filter As String = ""
Dim dr As DataRow = e.Node.DataRow       '声明变量dr为行类型,初值为生成此节点的行
Dim tbl As Table = Tables("员工信息")    '声明变量tbl为表类型,初值为"员工信息"表
'Dim ary = e.node.fullpath.split("\")
Dim ary = e.node.fullName.split("\")
If e.node.level > 0 '第二层节点开始
    Select Case ary(0)
        Case "户籍地"
            If ary(1) = "" Then
                Filter = "户籍地 is null"
            Else

                Filter = "户籍地 = '" & ary(1) & "'"
            End If
        Case "岗类部门"
            If e.node.level = 1 Then
                Filter = "岗位类别 = '" & ary(1) & "'"
            Else
                Filter = "岗位类别 = '" & ary(1) & "' and 工作部门 = '" & ary(2) & "'"
            End If
    End Select
    tbl.Filter = filter
    'ElseIf e.node.Text = "全部"
ElseIf e.node.Name = "全部"
    tbl.Filter = ""
End If

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