以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]获取父键下的子键集合 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139774) |
-- 作者:new4w -- 发布时间:2019/8/21 11:37:00 -- [求助]获取父键下的子键集合 最近有个需要,就是根据数据库的表格,来得到某个部门及其下的所有子部门id集合 数据库表是这样的: 为此,做了个递归函数 \'此函数为递归函数,用于根据数据表名,字段,获取某个字段值所有下级内容; 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也不行,必须把这个当作一个传进来的参数,这些我不太理解,我是蒙门做的这个参数 对于递归函数,运行的路线是什么样的? 是路线1,还是路线2?
[此贴子已经被作者于2019/8/27 8:37:10编辑过]
|