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


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

主题:TreeView1与表中不同步

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


加好友 发短信
等级:狐精 帖子:3049 积分:20399 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/26 11:06:00 [只看该作者]

老师麻烦看看,用你的方法分组上移没反应来。

Dim dt As DataTable=DataTables(vars("editTable"))
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim sd As WinForm.TreeNode=tr.SelectedNode '当前选择的项
'If sd.Index > 0 Then
If sd.Level = 0 Then
    Dim sd2 As WinForm.TreeNode = tr.Nodes(sd.Index - 1)
    Dim dr1 As DataRow = dt.Find("分类='" & sd.text & "'")
    Dim dr2 As DataRow = dt.Find("分类='" & sd2.text & "'")
    If dr1 IsNot Nothing AndAlso dr2 IsNot Nothing Then
        Dim d1 As Integer = dr1("父键")
        Dim d2 As Integer = dr2("父键")
        dt.ReplaceFor("父键",99999,"父键=" & d2)
        dt.ReplaceFor("父键",d2,"父键=" & d1)
        dt.ReplaceFor("父键",d1,"父键=99999")
        sd.MoveUp
    End If
End If
tr.Select

If sd.Level = 1 Then
    Dim sd4 As WinForm.TreeNode = tr.Nodes(sd.Index - 1)
    Dim dr3 As DataRow = dt.Find("分组='" & sd.text & "'")
    Dim dr4 As DataRow = dt.Find("分组='" & sd4.text & "'")
    If dr3 IsNot Nothing AndAlso dr4 IsNot Nothing Then
        Dim d3 As Integer = dr3("子键")
        Dim d4 As Integer = dr4("子键")
        dt.ReplaceFor("子键",99999,"子键=" & d4)
        dt.ReplaceFor("子键",d4,"子键=" & d3)
        dt.ReplaceFor("子键",d3,"子键=99999")
        sd.MoveUp
    End If
End If
tr.Select


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


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

Dim sd4 As WinForm.TreeNode = sd.ParentNode.Nodes(sd.Index - 1)

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


加好友 发短信
等级:狐精 帖子:3049 积分:20399 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/26 14:15:00 [只看该作者]

老师,我节点增加完成,如果修改分类或分组节点,导航表中只修改得了当前的节点对应的行的名称,不是分类,分组的所有节点都修改,如何来判定是后来修改不是第一次新增后修改呢?如果是后面修改就需要修改一个分类或分组的名称。

 

 

[此贴子已经被作者于2019/9/26 14:28:46编辑过]

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 14:59:00 [只看该作者]

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

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


加好友 发短信
等级:狐精 帖子:3049 积分:20399 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/26 17:28:00 [只看该作者]

老师,导航  表中的分类、分组、名称修改后,怎么让“用户管理”表中:菜单可见集合、菜单可用集合的名称同步修改呢,删除也同步删除。

[此贴子已经被作者于2019/9/26 17:28:51编辑过]

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 17:39:00 [只看该作者]

看24楼,同样的方法

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


加好友 发短信
等级:狐精 帖子:3049 积分:20399 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/27 11:16:00 [只看该作者]

麻烦老师写一下,没弄来,

用户管理表中,菜单可见集合、菜单可用集合 是用字符串来保存的,没弄来,有两个:

1、修改分类、分组、名称时,在用户管理表中,菜单可见集合、菜单可用集合同步更新为修改后的;

2、删除分类、分组、名称时,在用户管理表中,菜单可见集合、菜单可用集合同步修改。

这是最新的文件。

 


以下内容是专门发给有点蓝浏览


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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望: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

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


加好友 发短信
等级:狐精 帖子:3049 积分:20399 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/27 15:09:00 [只看该作者]

我调试页发现这个问题了,那这个框架这样还有问题,名称没法避免不可能不重复啊。

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 15:26:00 [只看该作者]

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

 回到顶部
总数 46 上一页 1 2 3 4 5 下一页