以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教多用户权限编辑,经理可以编辑所有,员工只能编辑权限内数据,设置后出问题,变成所有人都可以编辑。坐等,谢谢。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91173) |
-- 作者:ksaa16888 -- 发布时间:2016/10/1 9:33:00 -- 请教多用户权限编辑,经理可以编辑所有,员工只能编辑权限内数据,设置后出问题,变成所有人都可以编辑。坐等,谢谢。 请教多用户权限编辑,经理可以编辑所有,员工只能编辑权限内数据,某一行数字被编辑后,除非经理,其他人均不允许删除该行,也不允许编辑。但应用时出问题,变成所有人都可以编辑。 prepareedit事件如下: Select Case e.Col.name Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人","意愿核实日期","意愿审核日期","启用操作时间","启用备注","是否验" If user.name="赵经理" Then e.cancel=False Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人" If user.name<>"靓女1" Then e.cancel=True Case "意愿核实日期" If user.name<>"靓女2" Then e.cancel=True Case "意愿审核日期","启用操作时间","启用备注" If user.name<>"籽籽" Then e.cancel=True Case "是否验印" If user.name<>"靓女2" Then e.cancel=True End Select startedit事件如下: If User.name <> "赵经理" And e.Row.Isnull("启用操作时间")=False Then MessageBox.Show("对于已经启用的序号,只有经理才能编辑!", "提示") e.Cancel = True End If beforedeletedatarow事件如下: If User.name <> "赵经理" And e.DataRow.Isnull("启用操作时间")=False Then MessageBox.Show("对于已经启用的序号,只有经理才能删除!", "提示") e.Cancel = True End If [此贴子已经被作者于2016/10/1 9:41:13编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/1 10:17:00 -- If user.name="赵经理" Then \'经理可以编辑所有 Else e.DataRow.Isnull("启用操作时间")=False Then \'经理才能能编辑已经启用的行 If user.name <> "赵经理" Then e.Cancel = True End If Else Select Case e.Col.name Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人","意愿核实日期","意愿审核日期","启用操作时间","启用备注","是否验" If user.name <> "赵经理" Then e.cancel=False \'经理才能编辑这些列 Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人" If user.name<>"靓女1" Then e.cancel=True Case "意愿核实日期" If user.name<>"靓女2" Then e.cancel=True Case "意愿审核日期","启用操作时间","启用备注" If user.name<>"籽籽" Then e.cancel=True Case "是否验印" If user.name<>"靓女2" Then e.cancel=True End Select End If
|
-- 作者:ksaa16888 -- 发布时间:2016/10/1 14:41:00 -- 请问这个代码是要加到哪个事件中?prepareedit和startedit中添加都报错:编译错误:DataRow不是RowColeventargs的成员 |
-- 作者:狐狸爸爸 -- 发布时间:2016/10/2 8:28:00 -- PrepareEdit事件: If user.name="赵经理" Then \'经理可以编辑所有 Else e.Row.Isnull("启用操作时间")=False Then \'经理才能能编辑已经启用的行 If user.name <> "赵经理" Then e.Cancel = True End If Else Select Case e.Col.name Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人","意愿核实日期","意愿审核日期","启用操作时间","启用备注","是否验" If user.name <> "赵经理" Then e.cancel=False \'经理才能编辑这些列 Case "序号","资料审核备注","缺失资料","补齐时间","临时到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人" If user.name<>"靓女1" Then e.cancel=True Case "意愿核实日期" If user.name<>"靓女2" Then e.cancel=True Case "意愿审核日期","启用操作时间","启用备注" If user.name<>"籽籽" Then e.cancel=True Case "是否验印" If user.name<>"靓女2" Then e.cancel=True End Select End If
|
-- 作者:ksaa16888 -- 发布时间:2016/10/2 11:11:00 -- 多谢狐爸,节假日也能回复,确实感觉贵公司想做好产品的诚意。昨天我自己试着在prepareedit将代码变更了一下,只验证了经理可以编辑所有,其他员工未验证,不知道语法有没问题? 如:If user.name<>"陈靓女" Or user.name<>"戚靓女" Then e.cancel=True,陈靓女和戚靓女都可以编辑,是不是可以用OR这种表达式? 代码如下: If user.name = "赵经理" Then e.Cancel = False Else Select Case e.Col.name Case "序号","资料审核备注","缺失资料","补齐时间","上交时间","返还时间","临时序号到期日","资料是否齐全","是否亲办","联系人是否含","是否核实被授权人" If user.name<>"陈靓女" Or user.name<>"戚靓女" Then e.cancel=True Case "意愿核实日期" If user.name<>"蔡靓女" Then e.cancel=True Case "意愿审核日期","启用操作时间","序号启用备注" If user.name<>"叶籽籽" Then e.cancel=True Case "是否验" If user.name<>"任靓女" Then e.cancel=True End Select End If
[此贴子已经被作者于2016/10/2 11:11:28编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/2 11:45:00 -- If user.name<>"陈靓女" And user.name<>"戚靓女" Then e.cancel=True |
-- 作者:ksaa16888 -- 发布时间:2016/10/2 19:47:00 -- 咨询下,我就做了一个数据表及表内的一些事件编程,如果购买开发版本的话,可以发布成一个独立运行的数据表吗?可以放在一个局域网电脑内共享,所有用户可以在线共同编辑录入数据吗? |
-- 作者:狐狸爸爸 -- 发布时间:2016/10/3 9:19:00 -- 可以的 |