以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎样根据当前用户生成加载树 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=111514) |
-- 作者:aza520 -- 发布时间:2017/12/23 15:00:00 -- 怎样根据当前用户生成加载树 当前用户所负责的行是分页加载的,以下代码只能生成当前加载页的加载树,我想要生成根据当前用户所负责的所有行的数据生成加载树,请问老师该怎么修改? 注:不同的用户所能加载的数据是不一样的。 窗口事件代码: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree("S记录其它", "项目名称|县|乡镇|村屯|屯|组") trv.Nodes.Insert("显示所有行",0) 加载树事件代码: Dim Filter As String = "1=1" Dim dr = e.node.FullPath.split("\\") \'获取生成此节点的行 If e.Node.Text <> "显示所有行" Then Select Case e.Node.Level Case 0 Filter = "[项目名称] = \'" & dr(0) & "\'" Case 1 Filter = "[项目名称] = \'" & dr(0) & "\' And [县] = \'" & dr(1) & "\'" Case 2 Filter = "[项目名称] = \'" & dr(0) & "\' And [县] = \'" & dr(1) & "\' And [乡镇] = \'" & dr(2) & "\'" Case 3 Filter = "[项目名称] = \'" & dr(0) & "\' And [县] = \'" & dr(1) & "\' And [乡镇] = \'" & dr(2) & "\' And [村屯] = \'" & dr(3) & "\'" Case 4 Filter = "[项目名称] = \'" & dr(0) & "\' And [县] = \'" & dr(1) & "\' And [乡镇] = \'" & dr(2) & "\' And [村屯] = \'" & dr(3) & "\' And [屯] = \'" & dr(4) & "\'" Case 5 Filter = "[项目名称] = \'" & dr(0) & "\' And [县] = \'" & dr(1) & "\' And [乡镇] = \'" & dr(2) & "\' And [村屯] = \'" & dr(3) & "\' And [屯] = \'" & dr(4) & "\'And [组] = \'" & dr(5) & "\'" End Select End If |
-- 作者:有点蓝 -- 发布时间:2017/12/23 15:07:00 -- 参考:http://www.foxtable.com/webhelp/scr/2057.htm |
-- 作者:aza520 -- 发布时间:2017/12/23 15:23:00 -- 老师我已经设置过了这个代码,当前用户也只能加载自己负责的行,我的意思是,上述代码生成的加载树,只能根据第1页(当前页)加载的数据生成,第2页有不同的数据时,就没有提取。 |
-- 作者:有点蓝 -- 发布时间:2017/12/23 15:43:00 -- Dim cmd As New SQLCommand Dim dt As DataTable cmd.ConnectionName = "region" cmd.CommandText = "SELECT DISTINCT 项目名称,县,乡镇,村屯,屯,组 From {S记录其它} where 用户=\'" & user.name & "\'" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt, "项目名称|县|乡镇|村屯|屯|组") trv.Nodes.Insert("显示所有行",0) |
-- 作者:aza520 -- 发布时间:2017/12/23 15:51:00 -- 修改后,应用窗口时,显示:不存在名为“region"的数据源 |
-- 作者:有点蓝 -- 发布时间:2017/12/23 16:01:00 -- 那就改为自己的数据源啊,这么明显的错误要学会自己分析 |
-- 作者:aza520 -- 发布时间:2017/12/23 16:25:00 -- Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 项目名称,县,乡镇,村屯,屯,组 Fro m {S记录其它} where 用户=\'" & user.name & "\'" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.For m.Controls("TreeView1") trv.BuildTree(dt, "项目名称|县|乡镇|村屯|屯|组") trv.Nodes.Insert("显示所有行",0) 还是提示没有找到名为"S记录其它"的数据源
|
-- 作者:aza520 -- 发布时间:2017/12/23 16:27:00 -- cmd.C |
-- 作者:有点蓝 -- 发布时间:2017/12/23 16:28:00 -- 数据源名称!不是表名! |
-- 作者:有点蓝 -- 发布时间:2017/12/23 16:29:00 -- 另外sql的where条件改为符合自己要求的条件,看懂代码,不要只会抄 |