Foxtable(狐表)用户栏目专家坐堂 → [求助]多值列目录树


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

主题:[求助]多值列目录树

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)Dim trv As WinForm.TreeView = e.Fo...  发帖心情 Post By:2018/6/7 22:47:00 [只看该作者]

想实现按钮对当前目录树节点,加1个条件筛选

创建者 列为当前登陆者的行筛选处理,下面代码怎么改呢?

Tables("物料汇总").Filter = "项目空间类型 like '%" & e.Form.Controls("TreeView1").name  & "%'" And "[创建者] = '_UserName'"

 

节点增加了行数统计,上面的思路好像有问题。

我想实现的的效果是  目录树节点筛选一次后,再筛选出:创建者列 是当前登录者姓名的行

 

[此贴子已经被作者于2018/6/7 22:57:29编辑过]

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


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

 

Tables("物料汇总").Filter = "项目空间类型 like '%" & e.Form.Controls("TreeView1").selectednode.name  & "%' And [创建者] = '" & _UserName & "'"

 


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜) Tables("物料汇总").Filter ...  发帖心情 Post By:2018/10/25 10:05:00 [只看该作者]

  大师,如果增加1个条件,下面代码怎么修改呢? 谢谢啊

    '生成目录树

    Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

    For Each dr As DataRow In DataTables("室内设计项目").DataRows

        For Each s As String In dr("深化设计完成时间节点_负责人").split(",")

Dim stra = DataTables("员工资料").GetComboListString("姓名","分配任务组别 = '深化设计'","")

            If s > "" AndAlso s In stra AndAlso trv.Nodes.Contains(s) = False Then

                trv.nodes.Add(s)

            End If

        Next

    Next


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


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/25 10:16:00 [只看该作者]

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim stra As String = "|" & DataTables("员工资料").GetComboListString("姓名","分配任务组别 = '深化设计'","") & "|"

For Each dr As DataRow In DataTables("室内设计项目").DataRows
    For Each s As String In dr("深化设计完成时间节点_负责人").split(",")
        If s > "" AndAlso stra.Contains("|" & s & "|") AndAlso trv.Nodes.Contains(s) = False Then
            trv.nodes.Add(s)
        End If
    Next
Next

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点蓝)Dim trv As WinForm.TreeView = e.Fo...  发帖心情 Post By:2018/10/25 15:31:00 [只看该作者]

  大师,再请教一个问题

'生成目录树,节点后面增加文字  未完成+统计的数量后,AfterCheckNode  复选的代码怎么修改呢?

'多值列,生成目录树,单选模式

 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim stra As String = "|" & DataTables("员工资料").GetComboListString("姓名","分配任务组别 = '深化设计'","") & "|"

    

For Each dr As DataRow In DataTables("室内设计项目").DataRows

    If dr("深化设计完成时间节点_负责人") > "" Then

        For Each s As String In dr("深化设计完成时间节点_负责人").split(",")

            Dim nd As WinForm.TreeNode

            If s > "" AndAlso stra.Contains("|" & s & "|") AndAlso trv.Nodes.Contains(s) = False Then

                nd = trv.nodes.Add(s)

            nd.text = nd.name & "  未完成 " & DataTables("室内设计项目").compute("count(深化设计完成时间节点_负责人)", "深化设计完成时间节点_负责人 like '%" & s & "%'")

End If

        Next

    End If

Next 

Tables("室内设计项目").Filter = flt


[此贴子已经被作者于2018/10/25 15:51:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/25 15:40:00 [只看该作者]

贴出AfterCheckNode  复选的代码

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点蓝)贴出AfterCheckNode? 复选的代码...  发帖心情 Post By:2018/10/25 15:41:00 [只看该作者]

 AfterCheckNode

If e.Form.Controls("RadioButton5").Checked Then
Tables("室内设计项目").Filter = " "
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes '清除子节点选中状态
    nd.Checked = False
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
    e.node.ParentNode.Checked = False
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        If flt > "" Then
            flt = flt & " Or "  '注意用or而不是And
        End If
        flt = flt & "( 深化设计完成时间节点_负责人 like '%" & nd.Text & "%')"

        'flt = flt
    End If
Next
Tables("室内设计项目").Filter = flt
[此贴子已经被作者于2018/10/25 15:41:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/25 15:54:00 [只看该作者]

flt = flt & "( 深化设计完成时间节点_负责人 like '%" & nd.Name & "%')"

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点蓝)flt = flt & "( 深化设计完成时间...  发帖心情 Post By:2018/10/25 17:05:00 [只看该作者]

  大师,请教再增加一个条件(黄色区域),目录树生成问题


'多值列,生成目录树,单选模式

 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

     Tables("室内设计项目").Filter = " "

    trv.Nodes.Clear

Dim stra As String = "|" & DataTables("员工资料").GetComboListString("姓名","分配任务组别 = '深化设计'","") & "|"

Dim stre As String = "|" & DataTables("室内设计项目").GetComboListString("深化设计完成时间节点_负责人","深化设计完成时间节点_全套施工图完成时间_完成否 = '未完成' or 深化设计完成时间节点_全套施工图完成时间_完成否 is null","") & "|"

    

For Each dr As DataRow In DataTables("室内设计项目").DataRows

    If dr("深化设计完成时间节点_负责人") > "" Then

        For Each s As String In dr("深化设计完成时间节点_负责人").split(",")

            Dim nd As WinForm.TreeNode

            'If s > "" AndAlso stra.Contains("|" & s & "|") AndAlso trv.Nodes.Contains(s) = False Then

            If s > "" AndAlso stra.Contains("|" & s & "|") AndAlso stre.Contains("|" & s & "|") AndAlso trv.Nodes.Contains(s) = False Then

                nd = trv.nodes.Add(s)

            nd.text = nd.name & "  未完成 " & DataTables("室内设计项目").compute("count(深化设计完成时间节点_负责人)", "深化设计完成时间节点_负责人 like '%" & s & "%'")     '数量统计有误

End If

        Next

    End If

Next 




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


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/25 17:09:00 [只看该作者]

nd.text = nd.name & "  未完成 " & DataTables("室内设计项目").compute("count(深化设计完成时间节点_负责人)", "深化设计完成时间节点_负责人 like '%" & s & "%' and (深化设计完成时间节点_全套施工图完成时间_完成否 = '未完成' or 深化设计完成时间节点_全套施工图完成时间_完成否 is null)") 

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