Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树与表 交互选择的问题!!


  共有5536人关注过本帖树形打印复制链接

主题:[求助]目录树与表 交互选择的问题!!

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[求助]目录树与表 交互选择的问题!!  发帖心情 Post By:2013/1/7 15:24:00 [只看该作者]

 界面如下

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


目录树afterselectnode里代码如下

If e.Node.text <> "全部" Then
    Dim dr As DataRow
    Dim s As String = e.Node.Text
    Dim i As Integer = s.IndexOf(" ")
    s = s.SubString(0,i)
   
    dr = DataTables("综合部物品分类设置_综合部物品分类设置Table1").Find("分类编号 = '" & s & "'")
    Dim wz As Integer = Tables("综合部物品分类设置_综合部物品分类设置Table1").FindRow(dr)
    If wz >= 0 Then
        Tables("综合部物品分类设置_综合部物品分类设置Table1").Position = wz
    End If
End If

功能为:单击左边目录树 右边的table就能自动定位到相应的行


但是反过来我就不会了  就是在table中选择不同的行  目录树也到对应到相应节点,请教怎么弄?(PS.还有个功能就是:如果table当前选中的行是目录树中未展开的,则目录树保持当前展开状态,并展开选中行的节点)

[此贴子已经被作者于2013-1-7 15:28:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/7 15:44:00 [只看该作者]

 这样找虽然可以,不过建议优化一下。如果是自动生成的树,节点都有一个datarow属性,可以简化定位。

 对于从数据表找节点,没有简单的方法。只能是遍历所有的节点,然后去匹配。如果树是自己生成的,也可以优化一下。

 for each n as object in tv.allNones

 next
[此贴子已经被作者于2013-1-7 15:45:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/7 15:59:00 [只看该作者]

 终于找到一个例子了,你可以参考一下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:nodeselect节点改变底色.table



 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/7 17:33:00 [只看该作者]

 又遇到一个问题

我把代码放在 sql型table的 positionchanged里的  结果出现这个错误

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




If Tables("综合部物品分类设置_综合部物品分类设置table1").Focused Then
    StatusBar.Message1 = "第" & (e.Table.Position + 1) & "行,共" & e.Table.Rows.Count & "行"
    Dim trv As WinForm.TreeView = forms("ERP界面").Controls("综合部物品分类设置TreeView1")
    Dim t As Integer = trv.SelectedNode.Text.LastIndexOf(" ")

    If mytree Is Nothing Then Return

    Dim tv As WinForm.TreeView = mytree
    For Each node As WinForm.TreeNode In tv.AllNodes
        If e.Table.Rows(e.Table.Position)("分类编号") = node.text.SubString(0,t)
            tv.SelectedNode = node
            Exit For
        End If
    Next
End If

也就是 这个forms("ERP界面").Controls("综合部物品分类设置TreeView1")  找不到

但是我在命令窗口里 进行测试 forms("综合部物品分类设置").Controls("综合部物品分类设置TreeView1").Height = 0

没有出现错误  证明可以找到的 奇怪了
[此贴子已经被作者于2013-1-7 17:34:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/8 10:21:00 [只看该作者]

做个例子还是??

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/8 10:45:00 [只看该作者]

 直接发例子吧,比较直观些

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/8 15:32:00 [只看该作者]

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树与表交互1.rar



麻烦了
[此贴子已经被作者于2013-1-8 15:32:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/8 16:03:00 [只看该作者]

 大概这样。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树与表交互.table



 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/8 16:18:00 [只看该作者]

 多谢您啦~~~~ 狐神!图片点击可在新窗口打开查看   学了一招 Split(" ")(0)

 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/5/19 12:54:00 [只看该作者]

学习了。

 回到顶部