以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]逻辑列如何保存到集合中  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89809)

--  作者:188802386
--  发布时间: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
--  发布时间:2016/8/30 15:11:00
--  
Dim drs1 As List(Of DataRow) = DataTables("授权").Select("权限 = true")
--  作者:188802386
--  发布时间:2016/8/30 15:23:00
--  
改了还是不对,麻烦老师帮我改一下,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:角色授权.foxdb


--  作者:188802386
--  发布时间:2016/8/30 15:46:00
--  
红色代码是想实现将授权表的授权列选中的集合到角色管理的授权管理里面,但授权是逻辑列,也不会举一反三了,望老师指点迷津

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

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


--  作者:Hyphen
--  发布时间: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()