以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  全局删除代码出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=133823)

--  作者:ZJZK2018
--  发布时间:2019/4/21 13:24:00
--  全局删除代码出错
关闭窗口时全局删除代码出错,但我新建一个示例,又不会出现错误,查不出原因,如何处理?

全局事件BeforeDeleteDataRow

If User.Group.Contains("总经理") = False AndAlso User.Name <> "开发者" AndAlso e.DataRow("审核") = True Then

    MessageBox.Show("此项目已审核通过,只有经理才能删除此项目!", "提示")

    e.Cancel = True

End If


在窗口的AfterClose


DataTables("招标信息").DeleteFor("项目名称 Is Null")


出现下面提示错误:


.NET Framework 版本:2.0.50727.8800

Foxtable 版本:2019.4.12.1

错误所在事件:全局表事件,BeforeDeleteDataRow

详细错误信息:

调用的目标发生了异常。

未将对象引用设置到对象的实例。




--  作者:ZJZK2018
--  发布时间:2019/4/21 13:56:00
--  
问题是找到了把下面这个
If User.Group.Contains("总经理") = False AndAlso User.Name <> "开发者" AndAlso e.DataRow("审核") = True Then
改成
If User.Group <> "总经理" AndAlso User.Name <> "开发者" AndAlso e.DataRow("审核") = True Then

为什么使用Contains不行,我的需求是:总经理、副总经理均可以删除行?如何调整?
[此贴子已经被作者于2019/4/21 13:57:40编辑过]

--  作者:有点色
--  发布时间:2019/4/21 16:53:00
--  

改成比如

 

If user.group > "" andalso User.Group.Contains("总经理") = False AndAlso User.Name <> "开发者" AndAlso e.DataRow("审核") = True Then