Foxtable(狐表)用户栏目专家坐堂 → 复选框问题


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

主题:复选框问题

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
复选框问题  发帖心情 Post By:2020/7/30 2:14:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:112.jpg
图片点击可在新窗口打开查看

问题1  这个代码我是要在保存前,把有这个用户的权限先全部删除掉,然后添加新的权限,以前没有这个代码,比如给这个人修改权限,保存时有重复记录,可现在的结果是,是在添加后才检查,这个人的权限全部删除了

Dim bj As String = e.Form.Controls("编号").text
Dim yh As String = e.Form.Controls("用户").text

Dim dr1 As DataRow
dr1 = DataTables("用户权限表").Find("用户编号 = '" & bj & "'")
DataTables("用户权限表").DeleteFor("用户编号 = '" & bj & "'")

Dim bj1 As String = e.Form.Controls("编号").text
Dim yh1 As String = e.Form.Controls("用户").text

For Each r As Row In Tables("用户管理_Table3").GetCheckedRows  '权限名称表
    Dim r2 As Row = Tables("用户权限表").AddNew
    r2("用户编号") = bj1
    r2("用户") = yh1
    Dim abs() As String ={"类别编号","权限类别","分组编号","权限分组","权限名称"}
    For Each ab As String In abs
        r2(ab) = r(ab)
    Next
    r2("权限编号") = r("编号")
    DataTables("用户权限表").save

问题2 给人授权时,如果切换权限类别,上一个权限类别勾选的就没有,保存时就只能保存最后选择 权限类别下选中的权限,我在复选框状态修改前处理 
下面的代码,你看看哪块不对了

Dim Filter As String

Dim lst As new List(of String)
For Each r As Row In Tables("用户管理_table3").GetCheckedRows
    lst.Add(r("编号"))
Next
If Filter > "" Then
    Tables("用户管理_table3").Filter = Filter
    For Each r As Row In Tables("用户管理_table3").Rows
        r.Checked  = lst.Contains(r("编号"))
    Next
End If




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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/7/30 12:09:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目1.foxdb


用户权限维护实现功能

第一次给一个用户授权,选角色,该角色有什么权限,右边权限名称已勾选,保存OK

当第二次给这个人重新授权时,要自动的判断这个人 属于什么角色,都有什么权限,角色表,和权限名称表都选上,这个折腾了好长时间也弄不好

还有就是第二次进行保存时,写入的删除以前有用给的权限,再添加,不起作用

权限类别切换,权限多了不好找,要进行切换,写复选框修改保存前,也不起作用 

麻烦老师了,这个问题搞了好长时间了,还是搞不定



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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/7/30 14:55:00 [显示全部帖子]

Dim idx1 As Integer = Tables("用户管理_table3").Findrow("编号='" & dr2("权限编号") & "'")
        If idx1 > -1 Then
            Tables("用户管理_table3").Position = idx1
            Tables("用户管理_table3").Rows(idx1).Checked =True
        End If
老师,这个用户是直接绑定角色和权限都绑定,第一次的时候选了角色,权限名称是属于这个角色下的,当以后进入的看这个人的权限时,即看到他现在是什么角色,权限名称应该是他现在拥有的全部权限,这个我后面准备用颜色表示,那些是属于角色有的权限,哪些是超过角色外的权限授权。现在加了这个代码不起作用,显示的权限还是只有角色本身的权限

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/7/30 15:20:00 [显示全部帖子]

老师,这个在你的指导下,终于实现了,很感激

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/7/30 15:22:00 [显示全部帖子]

现在,还有就是想解决 再次授权时,重复记录的问题,
'Dim dr1 As DataRow
'dr1 = DataTables("用户权限表").Find("用户编号 = '" & bj & "'")
'DataTables("用户权限表").DeleteFor("用户编号 = '" & bj & "'")
想在添加前删除,可结果却是,在保存时,把这个人的所有权限删除了

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


加好友 发短信
等级:一尾狐 帖子:470 积分:3641 威望:0 精华:0 注册:2017/11/5 14:47:00
  发帖心情 Post By:2020/7/30 15:57:00 [显示全部帖子]

老师,勾选了,没有是上面这个代码,是重复记录,用上,真的是没有,想不通呀,不过这个先算了,先不考虑,说不定哪天也就有办法了 麻烦你 看一下,权限表 BeforeCheckRow  这个代码,切换类别后,前面选中的类别下的权限,最后保存不上
Dim Filter As String

Dim lst As new List(of String)
For Each r As Row In Tables("用户管理_table3").GetCheckedRows
    lst.Add(r("编号"))
Next
If Filter > "" Then
    Tables("用户管理_table3").Filter = Filter
    For Each r As Row In Tables("用户管理_table3").Rows
        r.Checked  = lst.Contains(r("编号"))
    Next
End If


 回到顶部