Foxtable(狐表)用户栏目专家坐堂 → 单选项及多选目录树保存问题


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

主题:单选项及多选目录树保存问题

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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/12 21:03:00 [显示全部帖子]

调试

Dim nd2 As WinForm.TreeNode = trv2.SelectedNode
msgbox(nd2.Level)
msgbox(nd2.Name )
msgbox(nd2.text)
If nd2.Level = 2 Then
    Dim di As DataRow = DataTables("软件用户列表").SQLFind("[姓名] = '" & nd2.Name & "' And ([锁定] Is Null or [锁定] = false)")
msgbox(nd2 IsNot Nothing)
    If di IsNot Nothing Then
        Dim rdo As WinForm.RadioButton

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


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

还学不会调试?

    For Each nd1 As WinForm.TreeNode In e.Form.Controls("TreeView1").AllNodes
msgbox(nd1.Name)
        If nd1.Name = "版块管理" OrElse nd1.Name = "权限分配" Then
msgbox(1)
            Continue For
msgbox(2)这一句永远不会执行,想想为什么:http://www.foxtable.com/webhelp/topics/0226.htm


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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/13 8:30:00 [显示全部帖子]

For Each nd1 As WinForm.TreeNode In e.Form.Controls("TreeView1").AllNodes
        Dim das As List(Of DataRow) = DataTables("授权表").SQLSelect("[用户姓名] = '" & nd2.Name & "' And [版块管理] = '" & nd1.Name & "' And [权限分配] = '" & nd1.Name & "' And ([锁定] Is Null Or [锁定] = false)")
msgbox(das.count)
        For Each da As DataRow In das
            If da IsNot Nothing Then
                For Each c1 As DataCol In DataTables("授权表").DataCols
msgbox(c1.Name)
                    If c1.Name = "所属部门" OrElse c1.Name = "职位" OrElse c1.Name = "用户姓名" OrElse c1.Name = "版块管理" OrElse c1.Name = "表名" OrElse c1.Name = "权限分配" OrElse c1.Name = "锁定" Then
msgbox("Continue ")
                        Continue For
                    ElseIf nd1.Name = c1.Name And nd1.Checked = True Then
msgbox("c1=true")
                        da(c1) = True
                    ElseIf nd1.Name = c1.Name And nd1.Checked = False Then 
msgbox("c1=False")
                        da(c1) = False
                    End If
                Next
            End If
        Next        
        DataTables("授权表").SQLUpdate(das)

    Next
        DataTables("授权表").load
End If

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


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

   For Each c1 As DataCol In DataTables("授权表").DataCols
        If c1.Name = "所属部门" OrElse c1.Name = "职位" OrElse c1.Name = "用户姓名" OrElse c1.Name = "版块管理" OrElse c1.Name = "表名" OrElse c1.Name = "权限分配" OrElse c1.Name = "锁定" Then
            Continue For '上面这几列无需打勾,故跳过执行
else
            For Each nd1 As WinForm.TreeNode In e.Form.Controls("TreeView1").AllNodes
                If nd1.Level = 2 Then                

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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/13 21:52:00 [显示全部帖子]

1、用户和授权表数据再多也有限,还不如全部加载了使用find,select,不要使用sqlfind、sqlselect。不要那么死

2、应该直接根据勾选的内容去查数据,而不是遍历所有数据来匹配勾选

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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/13 23:00:00 [显示全部帖子]

业务的东西我不懂,不需要拿出来和我讨论。有问题说问题即可。

编程和专业不专业其实没有什么关系,一种知识,一个技能而已,就看用不用心。看您很多问题其实都是基础问题,翻来覆去的都是同一个地方错误,建议还是花时间把编程基础学好。

到命令窗口测试理解一下下面代码区别
For i As Integer = 1 To 5
    If i Mod 2 = 0 Then
        Continue For
        MsgBox("永远不执行的代码")
    End If
Next

For i As Integer = 1 To 5
    If i Mod 2 = 0 Then
        Continue For
    Else
        MsgBox("奇数=" & i)
    End If
Next

For i As Integer = 1 To 5
    If i Mod 2 = 0 Then
        Continue For
    End If
    MsgBox(i & "是奇数")
Next

[此贴子已经被作者于2022/6/13 23:04:41编辑过]

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


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

1、用户和授权表数据再多也有限,还不如全部加载了使用find,select,不要使用sqlfind、sqlselect。

2、把授权表和这个用户有关的授权全部删除,然后重新添加新的授权

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


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

全部加载了使用find,select,不要使用sqlfind、sqlselect。

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


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

什么神逻辑。不会用到这些表的数据的时候再加载吗,没有规定一定要在项目启动的时候加载。再说了代码已经有加载数据的代码【DataTables("软件用户列表").load】,数据既然已经加载,还什么sql的不多余!

至于错误提示学会自行调试:http://www.foxtable.com/webhelp/topics/1485.htm,不要每次都等着我给您加msgbox
[此贴子已经被作者于2022/6/17 10:19:31编辑过]

 回到顶部