Foxtable(狐表)用户栏目专家坐堂 → [求助]


  共有2810人关注过本帖平板打印复制链接

主题:[求助]

帅哥哟,离线,有人找我吗?
青鸟
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
[求助]  发帖心情 Post By:2015/1/28 11:14:00 [只看该作者]

 

上次目录树输入合同类别时,目录树是由多列表生成的,这次费用类别目录树是由级码表生成的,级码表如下:

级码    类别名称

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

 回到顶部