Foxtable(狐表)用户栏目专家坐堂 → TreeView1与表中不同步


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

主题:TreeView1与表中不同步

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 14:59:00 [显示全部帖子]

不用判断吧,到表格datacolchanged事件,把等于分类,分组e.oldvalue的行都更新为e.newvalue的值

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 17:39:00 [显示全部帖子]

看24楼,同样的方法

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 14:02:00 [显示全部帖子]

首先菜单可见集合、菜单可用集合存储的是分类、分组、名称的内容,如果这些内容有重复,是无法处理的,比如“分类和名称”都有“用户管理”。

如果不重复,可以这样,比如改分类

If e.DataCol.Name="分类" Then
    Dim fn As winform.form=vars("editForm")
    If fn.Opened Then
        Dim tr As WinForm.TreeView = fn.Controls("TreeView1")
        For Each sd As  WinForm.TreeNode In tr.AllNodes
            If sd.Text = e.OldValue Then
                sd.Text=e.NewValue
            End If
        Next
    End If
    Dim drs As List(Of  DataRow)
    drs = DataTables(vars("editTable")).Select("[分类] = '" & e.OldValue & "'")
    For Each dr As DataRow In drs
        dr("分类") = e.NewValue
    Next

    drs = DataTables("用户管理").Select("',' + 菜单可用集合 + ',' like '%," & e.OldValue & ",%'")
    For Each dr As DataRow In drs
        dr("菜单可用集合") = ("," & dr("菜单可用集合") & ",").replace("," & e.OldValue & ",","," & e.NewValue & ",").trim(",")
    Next
End If

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 15:26:00 [显示全部帖子]

那就增加一个唯一编号列呗

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 16:37:00 [显示全部帖子]

还有什么问题?

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 17:37:00 [显示全部帖子]

NodeMouseClick事件

If e.Node.Level=1 Then
    Dim drrr As DataRow = e.Node.DataRow
    Dim s As String=drrr("菜单可用集合")
    Dim lst As new List(of String)  '可用集合
    lst.AddRange(s.Split(","))
    Dim tr As WinForm.TreeView = e.Form.Controls("TreeView4")
    For Each nd As WinForm.TreeNode In tr.AllNodes  '同步子节点选中状态
        nd.Checked = False
    Next
    Dim nn As WinForm.TreeNode
    For Each nd As WinForm.TreeNode In tr.AllNodes  '同步子节点选中状态
        If lst.Contains(nd.DataRow("编号"))
            nd.Checked=True
            nn = nd.ParentNode
            Do While nn IsNot Nothing
                nn.Checked = True
                nn = nn.ParentNode
            Loop
        End If
    Next
    
    s = drrr("菜单可见集合")
    lst.Clear
    lst.AddRange(s.Split(","))
    tr = e.Form.Controls("TreeView3")
    For Each nd As WinForm.TreeNode In tr.AllNodes  '同步子节点选中状态
        If lst.Contains(nd.DataRow("编号"))
            nd.Checked=True
            nn = nd.ParentNode
            Do While nn IsNot Nothing
                nn.Checked = True
                nn = nn.ParentNode
            Loop
        End If
    Next
end if

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 20:58:00 [显示全部帖子]

RowActivate事件


Dim r As DataRow  = e.Sender.Current.tag

Dim dr As DataRow = DataTables("用户管理").Find("',' + 菜单可用集合 + ',' like '%," & r("编号") & ",%' and 账号='" & _username & "'")

If dr IsNot Nothing Then

    Functions.remove("函数")

    Dim Code As String

    Code = e.sender.current.tag("代码")

    Functions.Add("函数",Code)

    Functions.Complie()

    Functions.Execute("函数")

End If


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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/29 17:19:00 [显示全部帖子]

Dim drs As List(of DataRow )= DataTables("导航").Select ("[分类] = '"& pag.SelectedPage.Name & "' and 名称 is not null","序号") 

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/29 20:09:00 [显示全部帖子]

没看懂,截图说明一下

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/29 20:36:00 [显示全部帖子]

那就是有其它代码影响了

 回到顶部
总数 23 上一页 1 2 3 下一页