3.17.4 编辑前进行复杂条件判断
现在要求:
1、每个业务员只能编辑自己负责的订单,对于其他业务员负责的订单,则只能查看不能编辑。
2、张经理可以编辑任何业务员的订单。
3、对于经结账的记录,普通业务员不能编辑。
4、对于未超过10天的订单,即使已经结账,张经理还是可以编辑。
设计步骤:
1、将订单表的DataRowAdding(见 [标题编号])事件设置为:
e.DataRow("业务员") = User.name
这样新增订单的时候,会自动在业务员列填入当前登录用户名。
2、最后将订单表的PrepareEdit(见 [标题编号])事件设置为:
If User.Name = "张经理" Then '如果是张经理
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
ElseIf e.Row("业务员") <> User.Name Then '如果是其他用户,且业务员和登录用户名不同
e.Cancel = True '则取消编辑
End If
中第一步里的
e.DataRow("业务员") = User.name
和
第二步里的
ElseIf e.Row("业务员") <> User.Name Then '如果是其他用户,且业务员和登录用户名不同
e.Cancel = True '则取消编辑
是不是有点矛盾?
如果在增加行的时候,业务员是自动填写上的,那还有第二步里的“其他用户,且业务员和登录名不同”吗?
如果在第二步里切换登录名的话,第一步里的自动填写业务员是不是重复了?
希望神人解答一下