Foxtable(狐表)用户栏目专家坐堂 → 问个递归问题,获取不了数据


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

主题:问个递归问题,获取不了数据

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
问个递归问题,获取不了数据  发帖心情 Post By:2015/12/15 15:22:00 [只看该作者]

表输入的结构是这样的:

中文姓名   下级
老付         老朱
老朱          老纪
老朱          老李


递归函数是这样写的:

'Vars("nms")=""
Dim cmd As New SQLCommand
Dim dt As DataTable
'   cmd.C
cmd.CommandText = "S    ELECT DISTINCT 下级,中文姓名 From {员工管理}"
dt = cmd.ExecuteReader()
Dim Products As List(Of String)
Products = dt.GetValues("中文姓名","下级='" & Args(0) & "'")
For Each Product As String In Products
    Functions.Execute("查询递归", Product)
    Vars("nms") = Vars("nms") & ",'" & Product & "'"
Next



执行函数是这样的!

Vars("_UserId")="111"
Dim dr As DataRow = DataTables("员工管理").Find("用户名='" & Vars("_UserId") & "'")
If dr IsNot Nothing
    Functions.Execute("查询递归",dr("中文姓名"))
    Output.Show(Vars("nms"))
End If


dr("中文姓名") 是 老付

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/15 15:25:00 [只看该作者]

我要获取的是 老付下面所有的下级,也就是 直接下级 老朱  老朱管着 老纪和老李 那么就是要获取三个名字
[此贴子已经被作者于2015/12/15 15:26:35编辑过]

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


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

Functions.Execute("查询递归",dr("下级"))

 

Products = dt.GetValues("下级","中文姓名='" & Args(0) & "'")


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/15 15:29:00 [只看该作者]

递归函数绕的太晕了,这样改 缺少一个老朱

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


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

Functions.Execute("查询递归",dr("中文姓名"))

 

Products = dt.GetValues("下级","中文姓名='" & Args(0) & "'")


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/15 15:34:00 [只看该作者]

脑子不够用,绕进去了 现在可以了,谢谢!

如果倒过来呢,怎么改?


上级     中文姓名
           老付          (上面没有上级了 最高级)
老付      老朱
老朱       老纪
老朱       老李
老李        小王


如何写这个函数 
[此贴子已经被作者于2015/12/15 15:37:47编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/15 15:41:00 [只看该作者]

我改出来了

 回到顶部