以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144415)

--  作者:江南小镇
--  发布时间:2019/12/19 13:30:00
--  [求助]目录树
老师好,标出的列名称能否改变成{“部门”,“性别”}在目录树中显示。
Dim str() As String = {"应聘信息_部门","个人基本资料_性别"} \'定义筛选树中显示的列名
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.Nodes.Insert("显示所有行",0)
For Each c As String In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c)
    For Each c2 As String In DataTables("人事档案_人事档案Table1").GetValues(c,c & " Is not null")
        n.Nodes.Add(c2,c2 & "(" & DataTables("人事档案_人事档案Table1").Compute("count(应聘信息_部门)",c & "=\'" & c2 & "\'") & "人)")
    Next
Next


--  作者:有点蓝
--  发布时间:2019/12/19 14:10:00
--  
msgbox(c.split("_")(1))
--  作者:江南小镇
--  发布时间:2019/12/19 14:55:00
--  
老师,搞不好。
--  作者:有点蓝
--  发布时间:2019/12/19 15:03:00
--  
Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c.split("_")(1))
--  作者:江南小镇
--  发布时间:2019/12/19 15:31:00
--  
老师,点击目录树节点找不到部门、性别列。

Dim str() As String = {"应聘信息_部门","个人基本资料_性别"} \'定义筛选树中显示的列名
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.Nodes.Insert("显示所有行",0)
For Each c As String In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c.split("_")(1))
    For Each c2 As String In DataTables("人事档案_人事档案Table1").GetValues(c,c & " Is not null")
        n.Nodes.Add(c2,c2 & "(" & DataTables("人事档案_人事档案Table1").Compute("count(应聘信息_部门)",c & "=\'" & c2 & "\'") & "人)")
    Next
Next

--  作者:有点蓝
--  发布时间:2019/12/19 15:44:00
--  
点击目录树节点和上面的代码有什么关系?
--  作者:江南小镇
--  发布时间:2019/12/19 18:56:00
--  
老师好

图片点击可在新窗口打开查看此主题相关图片如下:目录树.png
图片点击可在新窗口打开查看
 
--  作者:有点蓝
--  发布时间:2019/12/20 8:25:00
--  
点击目录树会触发什么事件?到这个事件代码里找问题,比如NodeMouseClick事件
--  作者:江南小镇
--  发布时间:2019/12/20 9:10:00
--  
老师好
Dim str() As String = {"应聘信息_部门","个人基本资料_性别"} \'定义筛选树中显示的列名
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.Nodes.Insert("显示所有行",0)
For Each c As String In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c.split("_")(1))


老师,上面代码把列名称改变后目录树中的代码就找到了。下面代码老师帮忙修改谢谢了。

Dim Filter As String
Dim d1 As String
Select Case e.Node.Level
    Case 1
        If e.Node.ParentNode.Text = "出生日期" Then
            Dim y As Date = new Date(cint(e.Node.Text.Split("(")(0)),1,1) \'取日期某部分?
            Filter = "个人基本资料_出生年月 >= #" & y & "# and 个人基本资料_出生年月 < #" & y.AddYears(1) & "#"
        ElseIf e.Node.ParentNode.Text = "基本工资" Then
            If e.node.text.Contains("以下") Then
                Filter = "应聘信息_期望薪资 <= " & e.node.name.Replace("以下","")
            ElseIf e.node.text.Contains("以上") Then
                Filter = "应聘信息_期望薪资 > " & e.node.name.Replace("以上","")
            Else
                Dim ar() As String = e.node.name.split("-")
                Filter = "应聘信息_期望薪资 >= " & ar(0) & " and 应聘信息_期望薪资 <= " & ar(1)
            End If
        Else
            Filter = e.Node.ParentNode.Text & " = \'" & e.Node.Text.Split("(")(0) & "\'"
            If e.Node.parentNode.text = "工龄" Then
                If e.Node.Text.Contains("年以下") Then
                    filter = "应聘信息_入职时间 > #" & Date.Today.AddYears(-1 *  val(e.Node.Name.Replace("年以下",""))) & "#"
                ElseIf e.Node.Text.Contains("年以上") Then
                    filter = "应聘信息_入职时间 < #" & Date.Today.AddYears(-1 * val(e.Node.Name.Replace("年以上",""))) & "#"
                Else
                    Dim ar() As String = e.Node.Name.replace("年","").Split("-")
                    filter = "应聘信息_入职时间 <= #" & Date.Today.AddYears(-1 * val(ar(0))) & "#" &  "And 应聘信息_入职时间 >= #" & Date.Today.AddYears(-1 * val(ar(1))-1) & "#"
                    
                End If
            End If
        End If
        
        
End Select
Tables("人事档案_人事档案Table1").Filter = Filter

--  作者:有点蓝
--  发布时间:2019/12/20 9:58:00
--  
e.Node.ParentNode.Text 改为e.Node.ParentNode.Name