Foxtable(狐表)用户栏目专家坐堂 → 如何根据表的某列生成目录树的问题


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

主题:如何根据表的某列生成目录树的问题

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
如何根据表的某列生成目录树的问题  发帖心情 Post By:2014/8/11 14:54:00 [显示全部帖子]

如图,想根据科目代码列的长度和级次生成目录树,因该列无级次分隔符,因此需要整体遍历各行找出分级的逻辑,再来生成目录树!这段代码怎么写能达到正确生成目录树的目的呢?是否也需要递归函数?
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140811144937.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 15:13:00 [显示全部帖子]

刚才怎么突然被锁了?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 15:27:00 [显示全部帖子]

是这样的:我做的这个系统是从用户的数据库中读取的科目表,科目代码本身是肯定有规则的,这点是可以肯定,只是有时候担心规则不一定在对方的数据库中获取到,因此,想在不获取规则的情况下,通过遍历各行的方式推测出规则,比方说发的图:明显可以推测出编码规则是:4-2-3,然后在得出这样的规则的情况下,再想办法生成目录树。


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 15:37:00 [显示全部帖子]

其实我可以先得出各行代码的长度,并集中在集合里,然后将集合里的重复值排除,就可以得到代码的长度规律,再进一步就可以得出编码规则了,我的初步想法是:再按照编码规则用逗号将科目代码分隔,再生成目录树就行了,但那样会修改科目代码列,我是想在不改变表结构和不修改表数据的情况下,生成目录树,一时还没想出什么办法!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 16:00:00 [显示全部帖子]

lsv兄费心了,但这个科目库是一个未知规则的科目库,现在的这个例子是4-2-3,但换言之有的科目库可能是4-2-2或是3-3-2,我的系统是面临的N多种规则的科目库,要现推测判断他的规则,再生成目录树,我的系统要对仍何规则的科目库通吃,哈哈,是有点儿难是吧!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 16:14:00 [显示全部帖子]

甜老师日理万机,可能仍未明白,423,422,322都是一种既定的编码规则,如果我的科目库始终是一种编码规则的话,那生成目录树就象lsv兄写的那段代码一样,马上就能生成。我的系统是要面对不同的客户,读取不同客户的科目库,今天我审计的客户的科目库是的编码规同是423,明天我换了一个客户,而他的就可能是422了,甚至有的客户还可能是4-2-2-3-2-1呢,所以我需要一段通用的、先判断编码规则后再生成目录树的代码!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 16:23:00 [显示全部帖子]

科目库一定是有编码规则的,这是一个大前提,这点不用担心,如果编码本身可能是无序的,那神仙也无法给生成目录树,因为逻辑本身就不对!现在是假如给了你一个4-2-2的编码库,你肉眼扫几行,肯定就能判断出它是4-2-2,然后就可以按4-2-2的规则写出只针对4-2-2的生成目录树的代码,但这在现实中当出现4-3-2的科目库的时候,咱们总不能去改程序吧?哈哈,老兄再动动脑,既然肉眼能推测出他的编码规则,那么机器也一定能先判断出规则!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 16:29:00 [显示全部帖子]

lsv兄,感谢你还把我的表做成了小例子,现在我把科目编码的规则改成了4-2-4,树可不就乱了么!如何优化?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编码规则(1).foxdb


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 17:26:00 [显示全部帖子]

lsv兄正解!就是这个意思!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 17:36:00 [显示全部帖子]

甜老师的代码用到了递归,并且只在代码中用到了既定值“422”,其他都是动态变量,很高!再把这个既定值“422”动态得出一下,就彻底完美了!


 回到顶部
总数 14 1 2 下一页