Foxtable(狐表)用户栏目专家坐堂 → 目录树定位


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

主题:目录树定位

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
目录树定位  发帖心情 Post By:2021/1/22 8:24:00 [只看该作者]

目录树内容太多,需要查找定位。以下代码可以按产品代码、型号、规格或型号规格模糊查找,但定位不准。我想分成2个按钮,一个按钮按代码定位,一个按钮型号或规格或型号规格定位。
?按钮的代码

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看
Dim arr() As String = e.Form.Controls("型号规格").text.split(" ")
Dim xh,gg As String
If arr.length > 0 Then
    xh = arr(0)
End If
If arr.Length > 1 Then
    gg = arr(1)
End If

Dim trv As WinForm.TreeView =  e.Form.Controls("产品目录")
Dim Start As Integer
Dim idx As Integer = - 1
If trv.SelectedNode IsNot Nothing Then '获取当前节点位置.
    Dim fullpath As String = trv.SelectedNode.FullPath
    For i As Integer = 0 To trv.AllNodes.count - 1
        If trv.AllNodes(i).fullpath = fullpath Then
            Start = i
            Exit For
        End If
    Next
End If
For i As Integer = Start + 1 To trv.AllNodes.count - 1  '从当前节点的下一个节点开始查找
    Dim nd As WinForm.TreeNode = trv.AllNodes(i)
    If gg > "" Then
        If nd.text.IndexOf(gg) >= 0 Then
            If xh > "" Then
                If nd.ParentNode.Text.IndexOf(xh) >= 0 Then
                    trv.SelectedNode = nd
                    nd.EnsureVisible
                    idx = i '将找到的位置复制给变量idx
                    Exit For
                End If
            Else
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
    Else
        If xh > "" Then
            If nd.Text.IndexOf(xh) >= 0 Then
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
        
    End If
Next
If idx = -1 Then
    msgbox("没找到或找完了")
End If
trv.Select()


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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/22 8:32:00 [只看该作者]

举例说明一下,什么数据查询不准?

这种有大量重复数据的,模糊查询肯定有大量符合条件的节点,比如查询101,几乎上面所有的节点都符合条件。

这种数据还不如使用表格显示和选择

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2021/1/22 8:59:00 [只看该作者]

我想一个按钮按完整代码查找,比如10101230103,一个按钮按型号或型号规格,比如BVR,或BVR 120.目录树最好按级查找

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/22 9:08:00 [只看该作者]

按完整代码查找

Dim trv As WinForm.TreeView =  e.Form.Controls("产品目录")
dim s as string = "10101230103"
dim s1 as string = s.substring(0,3)
Dim nd As WinForm.TreeNode = trv.nodes(s1)
s1 = s.substring(0,5)
nd = nd .nodes(s1)
s1 = s.substring(0,7)
nd = nd .nodes(s1)
trv.SelectedNode = nd
nd.EnsureVisible

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2021/1/22 9:11:00 [只看该作者]


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

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2021/1/22 9:23:00 [只看该作者]

dim s as string = "10101230103"应该是个变量

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2021/1/22 9:25:00 [只看该作者]

'生成产品代码目录
Dim trv As WinForm.TreeView = e.Form.Controls("产品目录")
trv.Nodes.Clear() '清除现有节点
trv.BuildTree("产品", "总类代码|分类代码|型号代码|产品代码")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & " " & nd.DataRow("产品总类")
        Case 1
            nd.Text = nd.text & " " &  nd.DataRow("产品分类")
        Case 2
            nd.Text = nd.text & " " &  nd.DataRow("产品型号")
        Case 3
            nd.Text = nd.text & " " &  nd.DataRow("产品规格")        
    End Select  
Next
trv.ResumeRedraw
trv.Nodes.Insert("全部",0)
'trv.Save(ProjectPath & "产品目录.foxtr")


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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/22 9:26:00 [只看该作者]

都发了几千贴了,还不懂怎么改为从文本框取值吗?

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


加好友 发短信
等级:九尾狐 帖子:2637 积分:19313 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2021/1/22 9:52:00 [只看该作者]

知道了,型号规格的按钮代码呢?


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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/22 10:03:00 [只看该作者]

继续使用原来的用法

 回到顶部
总数 44 1 2 3 4 5 下一页