Foxtable(狐表)用户栏目专家坐堂 → 目录树加载代码


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

主题:目录树加载代码

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


加好友 发短信
等级:童狐 帖子:278 积分:2915 威望:0 精华:0 注册:2013/8/28 22:21:00
目录树加载代码  发帖心情 Post By:2014/10/24 13:02:00 [只看该作者]

目录树的分布加载代码提示:未找到列 [WZ]。WZ是第一级编码,不知道问题出在哪里了。

 

 

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT Distinct * From {物资字典}"
dt = cmd.ExecuteReader()
Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
tv.Nodes.Clear

For Each dr As DataRow In dt.Select("上级编号 Not In (" & dt.GetComboListString("物资编码").Replace("|",",") & ")")
    tv.Nodes.Add(dr("物资编码"),dr("物资名称"))
Next
'Dim nd As WinForm.TreeNode
For Each nd As WinForm.TreeNode In tv.Nodes
    For Each dr As DataRow In dt.Datarows
        If dr("上级编号") = nd.Name Then
            nd = tv.Nodes.Add(dr("物资编码"),dr("物资名称"))
        End If
    Next
Next

 

 


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2014/10/24 13:16:00 [只看该作者]

看看这一句是不是应该这样(未测试,瞎蒙):

For Each dr As DataRow In dt.Select("上级编号 Not In {""" & dt.GetComboListString("物资编码").Replace("|",""",""") & """}")


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


加好友 发短信
等级:童狐 帖子:278 积分:2915 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/10/24 13:23:00 [只看该作者]

提示:无法解释13位置的{

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2014/10/24 13:29:00 [只看该作者]

For Each dr As DataRow In dt.Select("上级编号 Not like '*" & dt.GetComboListString("物资编码") & "*'")


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


加好友 发短信
等级:童狐 帖子:278 积分:2915 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/10/24 13:48:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb

目录树生成了,但是没有分级


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/24 14:19:00 [只看该作者]

分层目录树这样做。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


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


加好友 发短信
等级:童狐 帖子:278 积分:2915 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/10/24 14:34:00 [只看该作者]

节点单击事件如何修改才能让筛选出的数据只显示末级数据,而不是连中间的分类级别也显示出来呢。

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If e.Node.Name = "全部" Then
    DataTables("物资字典").LoadFilter = ""
Else
    DataTables("物资字典").LoadFilter = "上级编号 Like '" & e.Node.Name & "%'"
End If

DataTables("物资字典").Load


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/24 15:07:00 [只看该作者]

 需要额外处理一下,加入一列最末级列,用下面代码设置得出最末级

 

For Each dr As DataRow In DataTables("物资字典").SQLSelect("")
    If DataTables("物资字典").SQLFind("上级编号 = '" & dr("物资编码") & "'") Is Nothing Then
        dr("最末级") = True
    Else
        dr("最末级") = False
    End If
    dr.save
Next
DataTables("物资字典").LoadFilter = ""
DataTables("物资字典").Load


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


加好友 发短信
等级:童狐 帖子:278 积分:2915 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/10/24 15:33:00 [只看该作者]

数据太多了,用这段代码直接就停止响应了,能不能在筛选出的数据上再次筛选

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/24 16:03:00 [只看该作者]

如果数据过多,用下面代码,一次性赋值以后

 

DataTables("物资字典").LoadFilter = ""
DataTables("物资字典").Load

For Each dr As DataRow In DataTables("物资字典").DataRows
    If DataTables("物资字典").Find("上级编号 = '" & dr("物资编码") & "'") Is Nothing Then
        dr("最末级") = True
    Else
        dr("最末级") = False
    End If  
Next


 回到顶部