领导审批功能的实现
假定有两个用户分组,分别为经理和雇员,经理有审批和取消审批的功能,某行一旦通过审批,将禁止修改。
为此可以增加一个逻辑型列,名为“审批”,然后将表事件PrepareEdit的代码设置为:
If
e.Col.Name
= "审批" Then
'只有经理才能审批
If User.Group
<> "经理" Then
e.Cancel
= True
End
If
ElseIf
e.Row("审批")
= True Then
'如果此行已经审批了,则禁止修改
e.Cancel
= True
End
If
经理级别的用户要审批某行时,只需单击勾选此行的审批列即可,通过审批的行,经理和雇员都不能编辑,除非经理取消审核。
有的时候,可能希望能记录审批人和审批时间,可以增加一个名为“审批人”的字符型,用于记录审批人,另外增加一个日期时间列,名为“审批日期”,用于记录审批日期。
然后在窗口或菜单中加一个审批按钮,将按钮的代码设置为:
If
User.Group
= "经理"
Then
Tables("表A").Current("审批
人")
= User.Name
Tables("表A").Current("审批日期")
= Date.Today()
Else
MessageBox.show("你无审批权限!")
End
If
当然还得来个取消审批的按钮,代码为:
If
User.Group
= "经理"
Then
Tables("表A").Current("审批
人")
= Nothing
Tables("表A").Current("审批日期")
= Nothing
Else
MessageBox.show("你无取消审批权限!")
End
If
最后将表事件PrepareEdit的代码设置为:
If
e.Row.IsNull("审批人")
= False Then
'如果审批人列不为空
e.Cancel =
True
'则禁止编辑
End
If
这样经过审批的行,将不能编辑。