以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  录入窗口的权限  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55857)

--  作者:tcs686
--  发布时间:2014/8/25 10:53:00
--  录入窗口的权限

在表中对数据的保护操作,甜老师给了如下代码:

If User.Name = "张经理" Then \'如果是张经理

ElseIf e.Row("业务员") <> User.Name Then \'如果是其他用户,且业务员和登录用户名不同

e.Cancel = True \'则取消编辑

End If

If e.Row("结账") = True Then \'此订单已经结账

Dim tv As Date = e.Row("日期")

Dim tp As TimeSpan = Date.Today - tv

If tp.TotalDays >= 10 Then \'如果订单已经超过10天

e.Cancel = True \'则取消编

End If

End If


实现了以下功能:

1、每个业务员只能编辑自己负责的订单,对于其他业务员负责的订单,则只能查看不能编辑。
2、张经理可以编辑任何业务员的订单。
3、对于经结账的记录,普通业务员不能编辑。
4、对于未超过10天的订单,即使已经结账,张经理还是可以编辑。

现在问题是:另做了个录入窗口,在窗口录入中怎么做到和表中操作一样的权限?


--  作者:Bin
--  发布时间:2014/8/25 10:55:00
--  
把代码放到DataCloChangeING吧

e.row 改为 e.datarow

--  作者:有点甜
--  发布时间:2014/8/25 10:56:00
--  
  下面的代码,你写到datacolchanging事件即可

If User.Name = "张经理" Then \'如果是张经理
   
ElseIf e.DataRow("业务员") <> User.Name Then \'如果是其他用户,且业务员和登录用户名不同
   
    e.Cancel = True \'则取消编辑
   
End If

If e.DataRow("结账") = True Then \'此订单已经结账
   
    Dim tv As Date = e.DataRow("日期")
   
    Dim tp As TimeSpan = Date.Today - tv
   
    If tp.TotalDays >= 10 Then \'如果订单已经超过10天
       
        e.Cancel = True \'则取消编
       
    End If
   
End If

--  作者:tcs686
--  发布时间:2014/8/25 11:10:00
--  
谢谢啊,做好了