以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 问个递归问题,获取不了数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78705) |
-- 作者:blackzhu -- 发布时间: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 -- 发布时间:2015/12/15 15:25:00 -- 我要获取的是 老付下面所有的下级,也就是 直接下级 老朱 老朱管着 老纪和老李 那么就是要获取三个名字 [此贴子已经被作者于2015/12/15 15:26:35编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/12/15 15:26:00 -- Functions.Execute("查询递归",dr("下级"))
Products = dt.GetValues("下级","中文姓名=\'" & Args(0) & "\'") |
-- 作者:blackzhu -- 发布时间:2015/12/15 15:29:00 -- 递归函数绕的太晕了,这样改 缺少一个老朱 |
-- 作者:大红袍 -- 发布时间:2015/12/15 15:32:00 -- Functions.Execute("查询递归",dr("中文姓名"))
Products = dt.GetValues("下级","中文姓名=\'" & Args(0) & "\'") |
-- 作者:blackzhu -- 发布时间:2015/12/15 15:34:00 -- 脑子不够用,绕进去了 现在可以了,谢谢! 如果倒过来呢,怎么改? 上级 中文姓名 老付 (上面没有上级了 最高级) 老付 老朱 老朱 老纪 老朱 老李 老李 小王 如何写这个函数
[此贴子已经被作者于2015/12/15 15:37:47编辑过]
|
-- 作者:blackzhu -- 发布时间:2015/12/15 15:41:00 -- 我改出来了 |