Foxtable(狐表)用户栏目专家坐堂 → 全局表事件 判断


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

主题:全局表事件 判断

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
全局表事件 判断  发帖心情 Post By:2018/1/12 19:53:00 [只看该作者]

If e.Row("审核") = True AndAlso User.Name <> "皮新华" Then
    e.Cancel = True
    MessageBox.Show("审核权限不够!")    
ElseIf e.Row("审核") = True Then '如果此行已经审批了,则禁止修改
    e.Cancel = True
    MessageBox.Show("审核不能更改!")
End If


上面代码是正对每一个表
但是有些表没有审核的列
就会报错

怎么判断排除错误呢 

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/12 20:37:00 [只看该作者]


If e.Cols.Contains("审核") Then
    If e.Row("审核") = True AndAlso User.Name <> "皮新华" Then
        e.Cancel = True
        MessageBox.Show("审核权限不够!")
    ElseIf e.Row("审核") = True Then '如果此行已经审批了,则禁止修改
        e.Cancel = True
        MessageBox.Show("审核不能更改!")
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/1/13 9:27:00 [只看该作者]

PrepareEdit下会报错


应该放在全局表的那个位置


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/13 9:39:00 [只看该作者]

1.去掉MessageBox.Show("审核权限不够!")

2、放到StartEdit事件

StartEdit事件的使用方法和PrepareEdit事件完全一样,实际上大部分PrepareEdit能完成的工作,都可以用StartEdit完成。
但是两者有细微差别;PrepareEdit事件的代码,一进入单元格就会执行,为可能开始的编辑工作做准备,所以执行效率会差一些,因为并不是每次进入单元格都是需要编辑的;而StartEdit只是在真正开始编辑的时候执行,效率会稍微好一点;不过这种效率的差别,我们并不会明显感觉得到。
此外用于设置列表项目的代码,最好不要用在StartEdit事件中,否则你选择某一单元格的时候,可能不会出现下拉箭头按钮,因为此时StartEdit事件并没有执行,列表项目当然也就没有准备好。
千万不要在PrepareEdit事件显示Messagebox这样的对话框,因为每次进入单元格就会出现提示,这样会导致死循环的出现;在StartEdit事件中显示对话框就 没有这个问题,因为此时只有用户真正做出编辑动作的时候,对话框才会显示。

 回到顶部