以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]非空时管理员不能编辑,怎样做到啊?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55564)

--  作者:papapia
--  发布时间:2014/8/19 11:28:00
--  [求助]非空时管理员不能编辑,怎样做到啊?
有一列名为 “审核_开始日期”(日期字段),如果为空的话,管理员不能编辑,非空时才可以编辑。

按帮助文件的提示,在 PrepareEdit 中输入代码:

If User.Group = "管理员"
  If e.Col.Name = "审核_开始日期" AndAlso e.Row.IsNull("审核_开始日期") = True Then
    e.Cancel = True
  End If
End If

结果,以管理员登陆后,依然可以编辑并保存。
应该怎样写?

另外,同样是这个字段,如果另一列“完成日期”为空的话,审核员不能编辑,一旦这个字段非空,审核员也不能编辑,又该如何写?

--  作者:有点甜
--  发布时间:2014/8/19 11:30:00
--  

 不可能。除非条件不满足

 

If User.Group = "管理员"
  If e.Col.Name = "审核_开始日期" AndAlso e.Row.IsNull("审核_开始日期") = True Then
    e.Cancel = True
  End If
End If


--  作者:Bin
--  发布时间:2014/8/19 11:31:00
--  
If User.Group = "管理员"
  If e.Col.Name = "审核_开始日期" ORELSE e.Row.IsNull("审核_开始日期")  Then
    e.Cancel = True
  End If
End If
--  作者:有点甜
--  发布时间:2014/8/19 11:34:00
--  

代码,试一下

 

If User.Group = "管理员"
    If e.Row.IsNull("审核_开始日期") OrElse e.Row.IsNull("完成日期") Then
        e.Cancel = True
    End If
End If


--  作者:papapia
--  发布时间:2014/8/19 11:50:00
--  
 有点晕,两位老师的方法都试过了,还是可以编辑。
--  作者:Bin
--  发布时间:2014/8/19 11:52:00
--  
上例子,不可能
--  作者:papapia
--  发布时间:2014/8/19 12:00:00
--  
我初次接触编程,可以说是100%小白, 只是在学习最简单的知识,就是新建一个空白的项目,然后将一列命名为“审核_开始日期",增加用户组”管理员“,增加一个”测试“用户,指定为”管理员“组的,然后按照你们的方法复制到 PrepareEdit 中去。再以”测试“登陆,尝试在“审核_开始日期"填写日期,结果填了并且保存了。
--  作者:有点甜
--  发布时间:2014/8/19 12:02:00
--  
 回复7楼,把你的这个例子发上来