Foxtable(狐表)用户栏目专家坐堂 → [求助]获取父键下的子键集合


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

主题:[求助]获取父键下的子键集合

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


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
[求助]获取父键下的子键集合  发帖心情 Post By:2019/8/21 11:37:00 [只看该作者]

最近有个需要,就是根据数据库的表格,来得到某个部门及其下的所有子部门id集合
数据库表是这样的:

图片点击可在新窗口打开查看此主题相关图片如下:tim图片20190821113252.png
图片点击可在新窗口打开查看

为此,做了个递归函数
'此函数为递归函数,用于根据数据表名,字段,获取某个字段值所有下级内容;
Dim dt As DataTable = args(0)
Dim mbzd As String = args(1) ''获取的字段名
Dim tjzd As String = args(2) ''条件字段
Dim tjz As String = args(3) ''获取的条件值
Dim all As String = args(4) ''返回值


For Each tj As String In tjz.split("|")
Dim rang1 As String = dt.SQLGetComboListString(mbzd,tjzd & " = '" & tj & "'")
If rang1 <> "" Then
If all = "" Then
all = rang1
Else
all = all & "|" & rang1
End If
all=Functions.Execute("System_Getnextstr",dt,mbzd,tjzd,rang1,all)
End If
Next
Return all


使用方法:Dim strbm As String = Functions.Execute("System_Getnextstr",表明,"id","parentid","2|4" ,"")

 初步弄递归函数,大家给我指正下,看有没有需要修改的地方,现在是好用,但是有些地方我觉得似乎不太好,看到的大家回复我下
 
比如最后一个参数,all 我不想用,但是不用似乎返回不了以前的值

只用一个all也不行,必须把这个当作一个传进来的参数,这些我不太理解,我是蒙门做的这个参数

对于递归函数,运行的路线是什么样的?

图片点击可在新窗口打开查看此主题相关图片如下:运行路线.jpg
图片点击可在新窗口打开查看

是路线1,还是路线2?
[此贴子已经被作者于2019/8/27 8:37:10编辑过]

 回到顶部