最近有个需要,就是根据数据库的表格,来得到某个部门及其下的所有子部门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编辑过]