Foxtable(狐表)用户栏目专家坐堂 → 窗口下加载树,子表不能与父表同步加载,表格形式的加载树又可以。


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

主题:窗口下加载树,子表不能与父表同步加载,表格形式的加载树又可以。

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
窗口下加载树,子表不能与父表同步加载,表格形式的加载树又可以。  发帖心情 Post By:2017/10/30 20:56:00 [显示全部帖子]

我用表格形式时,可以实现子表与父表同步加载,用窗口加载树时,子表不能与父表同步加载,请教各位老师。

项目的BeforeLoadInnerTable事件
If e.DataTableName = "S征地记录" Then
    e.Filter = "[_Identify] Is Null"
End If

项目的LoadUserSetting事件
If User.Name = "开发者" Or User.Name = "管理员" Then
    DataTables("S征地记录").LoadFilter = ""
Else
    DataTables("S征地记录").LoadFilter = "乡 = '" & User.Name & "' or 县 = '" & User.Name & "' or 项目名称 = '" & User.Name & "'"
End If
DataTables("S征地记录").Load()

父表"S征地记录"的AfterLoad事件
e.DataTable.LoadChildren("S征地明细")

窗口的AfterLoad事件
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("S征地记录", "项目名称|县|乡")
trv.Nodes.Insert("显示所有行",0)

目录树的Dim Filter As String事件
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[项目名称] = '" & dr("项目名称") & "'"
        Case 1
            Filter = "[项目名称] = '" & dr("项目名称") & "' And [县] = '" & dr("县") & "'"
        Case 2
            Filter = "[项目名称] = '" & dr("项目名称") & "' And [县] = '" & dr("县") & "' And [乡] = '" & dr("乡") & "'"
    End Select
End If
Tables("S征地记录").Filter = Filter
Dim Filter As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[项目名称] = '" & dr("项目名称") & "'"
        Case 1
            Filter = "[项目名称] = '" & dr("项目名称") & "' And [县] = '" & dr("县") & "'"
        Case 2
            Filter = "[项目名称] = '" & dr("项目名称") & "' And [县] = '" & dr("县") & "' And [乡] = '" & dr("乡") & "'"
    End Select
End If
Tables("S征地记录").Filter = Filter


 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2017/10/30 21:53:00 [显示全部帖子]

还是不行
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171030215205.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2017/10/30 23:32:00 [显示全部帖子]

完整代码

 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2017/10/31 9:35:00 [显示全部帖子]

修改后可以实行子表同步,但再加载时又出现”此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据“提示,需再刷新加载树,可是刷新后的加载树只保留刚加载过数据的节点。未加载数据的节点消失

 回到顶部