Foxtable(狐表)用户栏目专家坐堂 → [求助]逻辑列如何保存到集合中


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

主题:[求助]逻辑列如何保存到集合中

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4921 威望:0 精华:0 注册:2014/2/25 15:50:00
[求助]逻辑列如何保存到集合中  发帖心情 Post By:2016/8/30 14:33:00 [只看该作者]

我知道是红色区域代码有问题,但不知道怎么修改,求指教,谢谢
这是一个保存按钮里面的代码,其中需要的权限列是逻辑列
Dim dr As Row = Tables("角色管理").Current
If dr Is Nothing Then Return
Dim drs As List(Of DataRow) = DataTables("授权").Select("加载范围 is not null")
If drs.Count > 0 Then
    Dim sqjh As String
    Dim fwjh As String
    For Each r As DataRow In drs
        sqjh &= "," & r("权限")
        fwjh &= "," & r("权限") & "|" & r("加载范围")
    Next
    dr("加载范围集合") = fwjh.TrimStart(",")
    
    Dim drs1 As List(Of DataRow) = DataTables("授权").Select("权限 = 'true'")
    If drs1.Count > 0 Then
        Dim sqjh1 As String
        For Each r As DataRow In drs1
            sqjh1 &= "," & r("权限")
        Next
        dr("授权集合") = sqjh1.TrimStart(",")
        Tables("角色管理").Current.Save() '保存当前行
    End If
End If
e.Form.Close()

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/30 15:11:00 [只看该作者]

Dim drs1 As List(Of DataRow) = DataTables("授权").Select("权限 = true")

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4921 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2016/8/30 15:23:00 [只看该作者]

改了还是不对,麻烦老师帮我改一下,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:角色授权.foxdb


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4921 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2016/8/30 15:46:00 [只看该作者]

红色代码是想实现将授权表的授权列选中的集合到角色管理的授权管理里面,但授权是逻辑列,也不会举一反三了,望老师指点迷津

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

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


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/30 15:56:00 [只看该作者]

Dim dr As Row = Tables("角色管理").Current
If dr Is Nothing Then Return
Dim drs As List(Of DataRow) = DataTables("授权").Select("加载范围 is not null")
If drs.Count > 0 Then
    Dim sqjh As String
    Dim fwjh As String
    For Each r As DataRow In drs
        fwjh &= "," & r("权限") & "|" & r("加载范围")
    Next
    dr("加载范围集合") = fwjh.TrimStart(",")
    Dim drs1 As List(Of DataRow) = DataTables("授权").Select("授权 = true")
    If drs1.Count > 0 Then
        For Each r As DataRow In drs1
            sqjh &= "," & r("权限")
        Next
        dr("授权集合") = sqjh.TrimStart(",")
        Tables("角色管理").Current.Save() '保存当前行
    End If
End If
'将新的角色权限更新至用户管理表里面
For Each drss As DataRow In DataTables("角色管理").DataRows
    DataTables("用户管理").ReplaceFor("加载范围集合", drss("加载范围集合"), "group = '" & drss("角色名称") & "'")
    DataTables("用户管理").ReplaceFor("授权集合", drss("授权集合"), "group = '" & drss("角色名称") & "'")
    '---信息提示开始----
    '_newp = "角色[更新]成功"
    'Forms("透明窗口").show
    'Return
    '---信息提示结束---
Next

' e.Form.Close()

 回到顶部