以文本方式查看主题

-  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=10674)

--  作者:实话实说
--  发布时间:2011/6/17 10:58:00
--  行编辑问题

编辑某行记录时自动记录[开单]者,如何排除[审核]人的编辑

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:blackzhu
--  发布时间:2011/6/17 12:01:00
--  
不懂,你的代码是跟着用户名走的
--  作者:blackzhu
--  发布时间:2011/6/17 12:02:00
--  

我们先来看看第一种情况如何实现,假定在一个客户消费数据表,有一逻辑列,名为“已结帐”;如果某一行的已结帐列被勾选,那么我们除了经理之外,员工不可以再修改该行。
实现的代码很简单,在该表的PrepareEdit事件中输入:

If e.Row("已结帐") = True AndAlso User.Group <> "经理" Then
    e.Cancel = True
End
If


--  作者:实话实说
--  发布时间:2011/6/17 12:32:00
--  
以下是引用blackzhu在2011-6-17 12:02:00的发言:

我们先来看看第一种情况如何实现,假定在一个客户消费数据表,有一逻辑列,名为“已结帐”;如果某一行的已结帐列被勾选,那么我们除了经理之外,员工不可以再修改该行。
实现的代码很简单,在该表的PrepareEdit事件中输入:

If e.Row("已结帐") = True AndAlso User.Group <> "经理" Then
    e.Cancel = True
End
If

我的需求是这样的:开单员可能有几个可编辑该表(不是同时)首先由开单员编辑行数据,然后记录该行数据是哪个开单员编辑的.主管对该行数据审核,即使审核后开单员也可编辑.如果只有开单员操作的话,只需在表的DataColChanged设置e.DataRow("开单") = User.Name & " " & Date.Now就行,现在有审核人操作,上面的代码就不能满足要求了.如何排除审核人的操作.


--  作者:mr725
--  发布时间:2011/6/17 14:21:00
--  

如何排除审核人的操作:

 

If User.Group = User.Name And User.Group <> "审核人"

      e.DataRow("开单") = User.Name & " " & Date.Now

end if


--  作者:blackzhu
--  发布时间:2011/6/17 14:22:00
--  
那么 e.DataRow.("开单")设定不是空值,这个列不要操作行不?

因为开单员先行操作,那么这个列已经变成了不是空值,如果不是空值的话,其它人不能修改e.DataRow.("开单")

--  作者:实话实说
--  发布时间:2011/6/17 20:55:00
--  
不好意思,刚回来.还是不能满足4楼需求
--  作者:lkqing
--  发布时间:2011/6/17 22:42:00
--  
以下是引用实话实说在2011-6-17 12:32:00的发言:

我的需求是这样的:开单员可能有几个可编辑该表(不是同时)首先由开单员编辑行数据,然后记录该行数据是哪个开单员编辑的.主管对该行数据审核,即使审核后开单员也可编辑.如果只有开单员操作的话,只需在表的DataColChanged设置e.DataRow("开单") = User.Name & " " & Date.Now就行,现在有审核人操作,上面的代码就不能满足要求了.如何排除审核人的操作.

感觉一头雾


--  作者:实话实说
--  发布时间:2011/6/17 23:14:00
--  
再描述一遍:除了主管,(只勾选[审核]列)其他登录者只要进行了编辑,都会在[开单]列留下登录名和最近编辑的时间,不论主管是否勾选了[审核]。这样可以明确责任。
--  作者:实话实说
--  发布时间:2011/6/18 8:28:00
--  
顶一下