Foxtable(狐表)用户栏目专家坐堂 → 如何利用类似1.1 1.1.1 之类的编号来生成目录树求思路


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

主题:如何利用类似1.1 1.1.1 之类的编号来生成目录树求思路

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


加好友 发短信
等级:婴狐 帖子:36 积分:393 威望:0 精华:0 注册:2015/1/26 13:33:00
如何利用类似1.1 1.1.1 之类的编号来生成目录树求思路  发帖心情 Post By:2015/11/9 13:16:00 [只看该作者]

我在做的项目打算利用1.1    1.1.1 这种形式的编号来保存产品数据,和BOM。原理的话跟子键父键差不多。。。但是怎样检索出子键不会呃,就是利用1.1区检索出所有下一级的。这个问题应该用哪个方面的知识解决?

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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/11/9 13:46:00 [只看该作者]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/9 14:10:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:36 积分:393 威望:0 精华:0 注册:2015/1/26 13:33:00
  发帖心情 Post By:2015/11/10 16:10:00 [只看该作者]

这个确实解决了目录树的生成问题。。。但是bom生成的时候就不行了。。。所以这个类似的问题手工编码实现的过程是什么呢
我的思路是识别出 1.2.3.4 的上一层1.2.3,所以问题就简化为输入1.2.3.4输出1.2.3,然而仅仅识别位数是不可行的。。。如果出现1.2.3.11的时候就会识别错误。。。原谅我看了很久的帮助手册还是没找到解决问题的方法。

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


加好友 发短信
等级:婴狐 帖子:36 积分:393 威望:0 精华:0 注册:2015/1/26 13:33:00
  发帖心情 Post By:2015/11/10 16:11:00 [只看该作者]

这个确实解决了目录树的生成问题。。。但是bom生成的时候就不行了。。。所以这个类似的问题手工编码实现的过程是什么呢
我的思路是识别出 1.2.3.4 的上一层1.2.3,所以问题就简化为输入1.2.3.4输出1.2.3,然而仅仅识别位数是不可行的。。。如果出现1.2.3.11的时候就会识别错误。。。原谅我看了很久的帮助手册还是没找到解决问题的方法。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/10 16:18:00 [只看该作者]

比如本级是1.2.3

 

1、所有的下级,就这样筛选 如 编号 like '%1.2.3.%'

 

2、上一级,就是 1.2


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


加好友 发短信
等级:婴狐 帖子:36 积分:393 威望:0 精华:0 注册:2015/1/26 13:33:00
  发帖心情 Post By:2015/11/10 17:13:00 [只看该作者]

如果只检索下一级就不行了啊这个指令能检索出 1.2.3 也能 检索出1.2.3.1 只检索出一级的应该怎么解决呢。。。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/10 17:21:00 [只看该作者]

查询呗,循环满足条件的,得到主键,如

 

Dim idx As String = "'',"
Dim num As String = "1.2.3"
For Each dr As DataRow In DataTables("表A").Select("第一列 like '" & num & ".%'")
    If dr("第一列").split(".").length = num.split(".").length + 1 Then
        idx &= "'" & dr("第一列") & "',"
    End If
Next
msgbox(idx.trim(","))

 


 回到顶部