Foxtable(狐表)用户栏目专家坐堂 → 如 id=1 就去找foid中等于1的数据 然后对应获取到id=2,3,4 然后又以id=2,3,4去找foid=5,6,7 然后又以foid=5,6,7去找id=……一直循环 怎么操作呢?


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

主题:如 id=1 就去找foid中等于1的数据 然后对应获取到id=2,3,4 然后又以id=2,3,4去找foid=5,6,7 然后又以foid=5,6,7去找id=……一直循环 怎么操作呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)第一段红色代码去掉,不需要多次一举...  发帖心情 Post By:2022/9/9 15:51:00 [只看该作者]

谢谢老师,在老师指导下  完美解决!

当前内部函数代码如下:

Dim dr1 As DataRow = args(0)
Dim faIDpath As String = args(1)
Dim namepath As String = args(2)
Dim dt As DataTable = args(3)
Dim drs As List(of DataRow)
drs = dt.Sel ect("faID ='" & dr1("ID") & "'")
If drs.count = 0 Then
    Dim dr2 As DataRow = DataTables("测试表").AddNew()
    Dim sr() As String = faIDpath.split(".")
    Dim sr1() As String = namepath.split(".")
    For i As Integer = 0 To sr.length - 1
        dr2("第" & (i+1) & "节") = sr(i)
        For i1 As Integer = 0 To sr1.length - 1
            dr2("第" & (i+1) & "节名称") = sr1(i1)
        Next
    Next
    dr2("窗体id") = dr1("formid")
    dr2("导航名") = dr1("name")
Else
    For Each dr As DataRow In drs
        Functions.Execute("AddChildren",dr,faIDpath & "." & dr("ID"),namepath & "." & dr("name"),dt)
    Next
End If

 

 

按钮代码如下:

If DataTables.Contains("测试表")  Then '如果表已经加载
    DataTables.Unload("测试表") '卸载表
End If
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Co nnec ti onNa me = "主数据源"
cmd.CommandText = "Sel ect * From sys_Navigation"
dt = cmd.ExecuteReader()

Dim dtb As New DataTableBuilder("测试表")
dtb.AddDef("第1节", Gettype(String), 64)
dtb.AddDef("第1节名称", Gettype(String), 64)
dtb.AddDef("第2节", Gettype(String), 64)
dtb.AddDef("第2节名称", Gettype(String), 64)
dtb.AddDef("第3节", Gettype(String), 64)
dtb.AddDef("第3节名称", Gettype(String), 64)
dtb.AddDef("第4节", Gettype(String), 64)
dtb.AddDef("第4节名称", Gettype(String), 64)
dtb.AddDef("第5节", Gettype(String), 64)
dtb.AddDef("第5节名称", Gettype(String), 64)
dtb.AddDef("窗体id", Gettype(String), 64)
dtb.AddDef("导航名", Gettype(String), 64)
dtb.Build()

Dim drs As List(of DataRow)
drs = dt.Select("faID  is null")
For Each dr As DataRow In drs
    Functions.Execute("AddChildren",dr ,dr("ID"),dr("name"),dt)
Next

MainTable=Tables("测试表")


 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107662 积分:547625 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/9 16:30:00 [只看该作者]

理论上id和名称的个数应该是一致的

    Dim dr2 As DataRow = DataTables("测试表").AddNew()
    Dim sr() As String = faIDpath.split(".")
    Dim sr1() As String = namepath.split(".")
    For i As Integer = 0 To sr.length - 1
        dr2("第" & (i+1) & "节") = sr(i)
dr2("第" & (i+1) & "节名称") = sr1(i)
    Next
    dr2("窗体id") = dr1("formid")

 回到顶部
总数 12 上一页 1 2