Foxtable(狐表)用户栏目专家坐堂 → [求助]添加可视化授权出错(已解决)


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

主题:[求助]添加可视化授权出错(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10639 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]添加可视化授权出错(已解决)  发帖心情 Post By:2011/7/14 10:35:00 [只看该作者]

在管理项目中添加可视化授权出错,代码和截图如下,请各位老师帮助看看,谢谢!!

 

'可视化授权
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = true
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End If
    Next
End If

 


此主题相关图片如下:a.png
按此在新窗口浏览图片

 

代码是添加到自定义用户登录窗口的"确定"按钮中。

[此贴子已经被作者于2011-7-14 11:31:58编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/14 10:41:00 [只看该作者]

你没有贴出完整的代码吧?

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/7/14 10:45:00 [只看该作者]

自己找原因吧。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/7/14 10:45:00 [只看该作者]

提示很清楚的。

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10639 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/7/14 10:47:00 [只看该作者]

谢谢狐爸老师,前段代码如下,上面的代码就贴在后面,按确定就出错,请狐爸老师帮助看看,谢谢!!

Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
cmd.C
If UserName = ""  Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * From {Users} Where [Name] = '" & UserName & "'"
dt = cmd.ExecuteReader
dr = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr("Group")
    e.Form.Close
Else
    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
'非开发隐藏表标题
If _UserGroup <> "开发" Then
    TableCaptionVisible = False
Else
    TableCaptionVisible = True
End If
'打开表返回最末行
With Tables("日报源表")
    .Position = .Rows.Count - 1
End With

 

 

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


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


加好友 发短信
等级:婴狐 帖子:33 积分:375 威望:0 精华:0 注册:2011/4/5 17:15:00
  发帖心情 Post By:2011/7/14 10:48:00 [只看该作者]

重新定义个变量就好了.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/14 10:51:00 [只看该作者]

For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )

 

改为:

 

For Each dr In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )

 

理由参考:

 

http://www.foxtable.net/help/topics/1518.htm

 


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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/7/14 10:52:00 [只看该作者]

以下是引用yyzlxc在2011-7-14 10:35:00的发言:

在管理项目中添加可视化授权出错,代码和截图如下,请各位老师帮助看看,谢谢!!

 

'可视化授权
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = true
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End If
    Next
End If

 


此主题相关图片如下:a.png
按此在新窗口浏览图片

 

代码是添加到自定义用户登录窗口的"确定"按钮中。

[此贴子已经被作者于2011-7-14 10:37:53编辑过]

你也是老革命了,这个错误很好解决嘛。


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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/7/14 10:55:00 [只看该作者]

Dim dr As DataRow
For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )
重复了。

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10639 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/7/14 11:17:00 [只看该作者]

按照狐爸老师的方案,并把变量名改了重新定义,还是出错!代码和截图如下:

 

'可视化授权
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Dim ds As DataRow
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each ds In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )
        If ds.IsNull("列名") Then
            Tables(ds("表名")).Visible = Not ds("不可见")
            Tables(ds("表名")).AllowEdit = Not ds("不可编辑")
        Else
            Tables(ds("表名")).Cols(ds("列名")).Visible = Not ds("不可见")
            Tables(ds("表名")).Cols(ds("列名")).AllowEdit = Not ds("不可编辑")
        End If
    Next
End If

 

 


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

 回到顶部
总数 12 1 2 下一页