以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:树和表的筛选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69613)

--  作者:lzzhx
--  发布时间:2015/6/8 10:46:00
--  请教:树和表的筛选问题

请各位老师帮我把学习项目中的代码完善一下

 

要求:当单击上面6个单选按钮时,树和表的内容按单选条件筛选

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学习项目.rar


--  作者:lzzhx
--  发布时间:2015/6/8 11:10:00
--  

求老师给写一下代码


--  作者:大红袍
--  发布时间:2015/6/8 11:33:00
--  

 看不懂你想表达什么意思。参考代码,全局的click事件

 

If e.Sender.Name.StartsWith("rbtn") Then
    Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
    Dim nd As WinForm.TreeNode
    Dim tb As DataTable = DataTables("用户")
    Dim dt As DataTable = DataTables("部门")
    tr.StopRedraw()
    tr.Nodes.Clear
    Dim dr As DataRow
    Select Case e.Sender.Name
        Case "rbtn全部"
            tr.Nodes.Add("全部")
            For Each dr In dt.Select("部门id in (" & tb.GetComboListString("部门ID", "范围 = \'全部\'").Replace("|", ",") & ")")
                nd = tr.Nodes.Add(dr("部门ID"),dr("部门"))
                nd.Tag = dr("部门ID")
                Functions.Execute("递归",nd,dt)
            Next
        Case "rbtn本部门"
            For Each dr In dt.Select("部门id in (" & tb.GetComboListString("部门ID", "范围 = \'本部门\'").Replace("|", ",") & ")")
                nd = tr.Nodes.Add(dr("部门ID"),dr("部门"))
                nd.Tag = dr("部门ID")
                Functions.Execute("递归",nd,dt)
            Next
        Case "rbtn本部门及子部门"
        Case "rbtn上级部门"
        Case "rbtn上级及本部门和子部门"
        Case "rbtn子部门"
    End Select
    tr.ResumeRedraw
End If


--  作者:lzzhx
--  发布时间:2015/6/8 12:29:00
--  

老师:我的意思没表达清楚,不是上面的意思。

主要目的是要实现当不同用户登录后,根据该用户可查看的范围,限制部门树和用户表显示的内容,上传项目中设了6个单选按钮,只是想学习一下不同查看范围如何设置树和表的条件:

1.当用户范围是【全部】时,部门和用户全部显示

2.当用户范围是【本部门】时,部门树只显示该用户的部门,用户表显示该部门的全部用户

3.当用户范围是【本部门及子部门】时,部门树只显示该用户的部门和该部门的所有子部门,用户表显示该部门及所有子部门的全部用户

4.当用户范围是【上级部门】时,部门树只显示该用户的上级部门,用户表显示该该用户的上级部门的用户

5.当用户范围是【上级及本部门和子部门】时,部门树只显示该用户的上级部门、该用户的部门和该部门的所有子部门,用户表显示该该用户的上级部门、部门及所有子部门的全部用户

 

代码正常应该写在窗体打开后事件中,根据登录用户的部门ID和范围设置加载条件,上传项目中设了6个单选按钮,只是想请老师把代码写在这些按钮的单击事件中,方便查看和演示

 

请老师费心给写写。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学习项目.rar


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

--  作者:lzzhx
--  发布时间:2015/6/8 12:42:00
--  

主要是后三条该如何写代码?请老师费心看看


--  作者:大红袍
--  发布时间:2015/6/8 13:45:00
--  
      
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学习项目.table


--  作者:lzzhx
--  发布时间:2015/6/8 14:22:00
--  
谢谢大红袍老师
--  作者:凡夫俗子
--  发布时间:2016/3/2 18:16:00
--  
如果 将王四 设置为部门一 则最后一个 上级及本部门和子部门会报错
--  作者:大红袍
--  发布时间:2016/3/2 18:44:00
--  
                For Each dr In dt.Select("部门id = \'" & fdr("部门id") & "\'")
                    If cd Is Nothing
                        nd = trv.Nodes.Add(dr("部门ID"),dr("部门"))
                    Else
                        nd = cd.Nodes.Add(dr("部门ID"),dr("部门"))
                    End If
                    nd.Tag = dr("部门ID")
                    Functions.Execute("递归",nd,dt)
                Next

--  作者:凡夫俗子
--  发布时间:2016/3/2 19:07:00
--  
谢谢

[此贴子已经被作者于2016/3/2 19:11:43编辑过]