Foxtable(狐表)用户栏目专家坐堂 → 这个错误提示怎么去掉


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

主题:这个错误提示怎么去掉

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
这个错误提示怎么去掉  发帖心情 Post By:2016/7/6 17:22:00 [只看该作者]

请教红袍老师:

 

用开发人员账号登陆没有任何错误提示,换一个普通人员账号登陆提示不存在这个表

 

 


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

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

 

这个表以前可能有,但是被我删除了,但是我目前使用的数据链接中肯定没有,也或者可能是另外一个SQL数据库中的,软件更换了SQL数据库地址。

 

这个错误的提示怎么去掉呢?

 


 


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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/6 17:27: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("用户名 = '" & User.Name & "'" )
        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


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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/6 21:24:00 [只看该作者]

 续1楼,检查了另外一个SQL数据源,里面也没有这个表呢,应该是早就删除了,为什么还会出现这个错误呢。怎么删除掉?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/6 23:33:00 [只看该作者]

你授权表里面有记录,你获取的是表里的值,没有,自然报错

 

For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )

 

你可以加一个判断

 

For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )

    If Tables.Contains(dr("表名")) Then

 

    End If


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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/7 8:23:00 [只看该作者]

谢谢红袍老师,这个做法是把第一个问题解决了,我以后如果删除表,也会把授权表里面的表删除掉。

另外就是2楼的问题,如果在授权表中让用户对某一个表不可见,实际上是隐藏了表的标签,当一个窗口引用了表,用户切换到这个窗口的时候,表还是可以看见,能否设置为,当这个表不让特定用户看见的时候,即使切换到引用这个表的窗口,这个用户还是无法看到这个表?并且弹出对话框提示“”你无权查看该表“”

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


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

在窗口打开的时候再进行一次权限判断

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/7 9:25:00 [只看该作者]

如何判断呢?能给出判断语句吗?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 9:35:00 [只看该作者]

在afterLoad事件写代码

 

For Each c As object In e.form.controls
    If typeof c Is winform.Table Then
        Dim name As String = c.Table.DataTable.name
        Dim fdr As DataRow = DataTables("授权表").find("用户名 = '" & User.Name & "' and 表名 = '" & name & "' and 列名 is null")
        If fdr IsNot Nothing Then
            c.visible = not fdr("不可见")
            c.Table.AllowEdit = not fdr("不可编辑")
        End If
    End If
Next


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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/7 9:53:00 [只看该作者]

这是需要再每个窗口的AfterLoad加入还是在项目的事件中写?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 10:06:00 [只看该作者]

 弄成一个内部函数,写到每个窗口的AfterLoad事件,总体控制。

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