Foxtable(狐表)用户栏目专家坐堂 → 取得父节点编号以及节点路径全名


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

主题:取得父节点编号以及节点路径全名

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


加好友 发短信
等级:九尾狐 帖子:2199 积分:18081 威望:0 精华:0 注册:2011/11/26 20:21:00
取得父节点编号以及节点路径全名  发帖心情 Post By:2012/7/30 11:55:00 [显示全部帖子]

在工作中,经常会遇到cpno重名的情况,有时候只看cpno的名称可能会引起误解。
所以,此时需要显示出cpno的全名,也就是包括这个节点的父节点,以及父节点的父节点……的名称,便于识别。

另外,看了一下关于递归的帮助,大致模糊地思考了一下取父节点编号(sortkey)的方法,不知是否可行——也就是遍历所有的sortkey,这个编号从左边开始的字符包括在本行字符串之内且只比本行字符串少一个分隔符(\),但再一想,如果sortkey有上千行,那效率可能会很低。

请高人指点。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目196.table


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


加好友 发短信
等级:九尾狐 帖子:2199 积分:18081 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/7/31 11:26:00 [显示全部帖子]

可能是我描述得不够清楚。

是这样的,在文件里,sortkey和cpno这两列是手工直接输入的。
而totalcnpo和FindFather这两列是要通过代码实现的展示结果(我在表中已经手工输入了结果,最终代码执行之后要跟这个结果一致)

比如第二行的sortkey是000\001,cpno是p0101
要求
(1)在totalcpno列里把全称显示出来,即p0101的父节点名称是p0104,那么全称显示应为p0104\p0101
(2)在findfather列里把p0101的父节点的sortkey显示出来,它的父节点的sortkey=000

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


加好友 发短信
等级:九尾狐 帖子:2199 积分:18081 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/7/31 11:37:00 [显示全部帖子]

同事,如第6行,sortkey=000\001\001,cpno=p0119

则totalcpno不仅要包括它的父节点(sortkey=000\001)的cpno(p0101),还要包括它的父节点的父节点(sortkey=000)的cpno(p0104),并且用分隔符隔开,也就是它的全名显示为p0104\p0101\p0119

而第6行的父节点的sortkey=000\001

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


加好友 发短信
等级:九尾狐 帖子:2199 积分:18081 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/8/1 15:12:00 [显示全部帖子]

解决方式巧妙。巧用分隔符来实现,油菜

 回到顶部