以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  使用多层列表选择,出现错误!!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4875)

--  作者:雨中的泪
--  发布时间:2009/11/5 9:23:00
--  使用多层列表选择,出现错误!!
Dim tv As WinForm.TreeView
tv = e.Form.Controls("TreeView1")
tv.BuildDataTree("DW","","归口股室","乡镇名称","单位类型","单位名称")



If e.Node.Level = 0 Then  \'如果是顶层节点  
    Return \'则返回 
End If 
Dim Vals() As String = e.Node.FullPath.Split("\\")  
Dim Filter As String = "[归口股室] = \'" & Vals(0) & "\' And [乡镇名称] = \'" & Vals(1) & "\' And [单位类型] = \'" & Vals(2) & "\' And [单位名称] = \'" & Vals(3) & "\'" 
Dim dr As DataRow = DataTables("DW").Find(Filter) 
Dim r As Row = Tables("SYGF").Current 
r("归口股室") = dr("归口股室") 
r("乡镇名称") = dr("乡镇名称") 
r("单位类型1") = dr("单位类型") 
r("单位类型2") = dr("单位类型2") 
r("单位名称") = dr("单位名称") 
r("单位代码") = dr("单位代码") 
r("是否教龄津贴单位") = dr("是否教龄津贴单位") 
r("是否护龄津贴单位") = dr("是否护龄津贴单位") 
r("标准起始时间") = dr("实施绩效工资标准起始时间") 
r("控制时间") = dr("实施绩效工资审批控制时间") 
if r("标准起始时间") = "0001-01-01" 
   r("标准起始时间") = nothing 
end if 
if r("控制时间") = "0001-01-01" 
   r("控制时间") = nothing 
end if 
e.Form.Close()

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

--  作者:雨中的泪
--  发布时间:2009/11/5 9:27:00
--  
双击二层以下节点就出现错误提示!!!
版主帮忙,看看,谢谢
--  作者:狐狸爸爸
--  发布时间:2009/11/5 9:32:00
--  
Dim Vals() As String = e.Node.FullPath.Split("\\")  
Dim Filter As String = "[归口股室] = \'" & Vals(0) & "\' And [乡镇名称] = \'" & Vals(1) & "\' And [单位类型] = \'" & Vals(2) & "\' And [单位名称] = \'" & Vals(3) & "\'" 

上面的代码,如果双击的不是4层节点,那么肯定是出错的。

用Vals.Length判断双击的是几层节点吧
--  作者:雨中的泪
--  发布时间:2009/11/5 9:41:00
--  
如何改?版主谢谢
--  作者:狐狸爸爸
--  发布时间:2009/11/5 9:58:00
--  
If e.Node.Level = 0 
    Return
End If

改为:

If e.Node.Level < 3 Then 
    Return
End If 

--  作者:雨中的泪
--  发布时间:2009/11/5 10:27:00
--  
谢谢