领导审批功能的实现
假定有两个用户分组,分别为经理和雇员,经理有审批和取消审批的功能,某行一旦通过审批,将禁止修改。
为此可以增加一个逻辑型列,名为“审批”,然后将表事件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
这样经过审批的行,将不能编辑。