以文本方式查看主题

-  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条件改为符合自己要求的条件,看懂代码,不要只会抄