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


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

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

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 11:46:00 [显示全部帖子]

 可以,以后修改麻烦。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 11:56:00 [显示全部帖子]

Dim e = Args(0)

 

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

 

-----------------------

 

调用

 

Functions.Execute("test", e)


 回到顶部