以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于集合递归函数的所有部门名称【已解决】  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89829)

--  作者:188802386
--  发布时间:2016/8/30 19:25:00
--  [求助]关于集合递归函数的所有部门名称【已解决】
有如下一个‘部门管理’表,框架采用的递归函数(部门所属,部门名称),我想到递归函数都可以筛选出下级直到最后一级,我在想 能不是在打开表就自动更新‘部门集合’列

图片点击可在新窗口打开查看此主题相关图片如下:888.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/8/31 12:31:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/8/31 7:45:00
--  
这个和递归无关:

For Each dr As DataRow In DataTables("表A").datarows
    If dr("部门名称").EndsWith("区") Then
       dr("部门合集") = DataTables("表A").GetComboListString("部门名称","部门所属=\'" & dr("部门名称") & "\'")
   Else
      dr("部门合集") = dr("部门名称")
    End If
Next


--  作者:188802386
--  发布时间:2016/8/31 8:48:00
--  
狐狸爸爸,本部集合还包括部门名称,再说部门框架不只是这个,可能有很多,想营销部的集合就是部门名称那一列了(按现在的表举例)
部门随时可能换,现在有区,下次来个部或组,岂不要修改代码

--  作者:Hyphen
--  发布时间:2016/8/31 9:13:00
--  
看看是不是这样
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目23.table



--  作者:188802386
--  发布时间:2016/8/31 10:57:00
--  
For Each r As Row In Tables("表A").Rows
    r("第三列") = Functions.Execute("GetChild",r("第二列")).replace("|",",")
Next
老师,大概意思是这样,但是第三列还要包括第二列的内容在内,以上代码没有把第二列本身集合进去


--  作者:有点蓝
--  发布时间:2016/8/31 11:08:00
--  
r("第三列") = r("第二列") & “,” & Functions.Execute("GetChild",r("第二列")).replace("|",",")

首先要理解代码,想怎么改都可以

--  作者:188802386
--  发布时间:2016/8/31 12:32:00
--  
谢谢各位老师,最后改成的
For Each r As Row In Tables("表A").Rows
    r("第三列") = Functions.Execute("GetChild",r("第二列")).replace("|",",")
    If r("第三列") > "" Then
        r("第三列") = r("第二列") & "," & Functions.Execute("GetChild",r("第二列")).replace("|",",")
    Else
        r("第三列") = r("第二列")
    End If
Next
完美,中午了,老师记得吃午饭哦