领导审批功能的实现

假定有两个用户分组,分别为经理和雇员,经理有审批和取消审批的功能,某行一旦通过审批,将禁止修改。

为此可以增加一个逻辑型列,名为“审批”,然后将表事件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

这样经过审批的行,将不能编辑。


本页地址:http://www.foxtable.com/webhelp/topics/2296.htm