上次目录树输入合同类别时,目录树是由多列表生成的,这次费用类别目录树是由级码表生成的,级码表如下:
级码 类别名称
1 合同费用
1.1 工程费用
1.1.1 总包费用
1.1.1.1 总包土建费用
1.1.1.2 总包安装费用
1.1.1.3 总包其它费用
1.1.2 分包费用
1.1.2.1 分包土建费用
1.1.2.1.1 初步勘察
1.1.2.1.2 详细勘察
1.1.2.1.3 土建临设
级码表设置的目录树无法按列获取输入值,因此考虑用FullPath获取路径标签,转化为输入值,代码如下,
在下拉菜单输入时,点击第0,1,2,3层目录时,弹出路径错误,索引超出数组范围的提示。
点击第4层目录时,弹出“未找到列”的错误提示,
请教修改:
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim Filter As String = "[费用类型] = '" & Vals(0) & "' And [一级费用类别] = '" & Vals(1) & "' And [二级费用类别] = '" & Vals(2) & "' And [三级费用类别] = '" & Vals(3) & "'And [四级费用类别] = '" & Vals(4) & "'"
Dim dr As DataRow = DataTables("费用类别").Find(Filter)
Dim r As Row = Tables("费用支付台账").Current
If e.Node.Level = 0 Then
Return
Else If e.Node.Level = 1 Then
Return
Else If e.Node.Level = 2 Then
r("费用类型") = dr("费用类型")
r("一级费用类别") = dr("一级费用类别")
r("二级费用类别") = dr("二级费用类别")
e.Form.DropDownBox.Value = dr("费用类型")
Else If e.Node.Level = 3 Then
r("费用类型") = dr("费用类型")
r("一级费用类别") = dr("一级费用类别")
r("二级费用类别") = dr("二级费用类别")
r("三级费用类别") = dr("三级费用类别")
e.Form.DropDownBox.Value = dr("费用类型")
Else If e.Node.Level = 4 Then
r("费用类型") = dr("费用类型")
r("一级费用类别") = dr("一级费用类别")
r("二级费用类别") = dr("二级费用类别")
r("三级费用类别") = dr("三级费用类别")
r("四级费用类别") = dr("四级费用类别")
e.Form.DropDownBox.Value = dr("费用类型")
End If
e.form.DropDownBox.CloseDropdown