以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]翻帮助文件学习的时候有个问题想不通,求教一下  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=23825)

--  作者:ncffcy
--  发布时间:2012/9/20 22:19:00
--  [讨论]翻帮助文件学习的时候有个问题想不通,求教一下
 

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 \'
则取消编辑
是不是有点矛盾?

如果在增加行的时候,业务员是自动填写上的,那还有第二步里的其他用户,且业务员和登录名不同”吗?

如果在第二步里切换登录名的话,第一步里的自动填写业务员是不是重复了? 

 

 

 

希望神人解答一下


--  作者:jspta
--  发布时间:2012/9/20 23:32:00
--  
没有矛盾。这个是多人共同录入同一行的时候的判断,不是你一个人。你可以想象下,这个表只能你一个人录入,那根本就不需要判断了。
这两个事件是即时生效的,第一步是在增加行时候执行。第二步是在准备编辑时候执行。行已经增加了,你切换用户也不修改这列值

--  作者:lin_hailun
--  发布时间:2012/9/21
--  
 数据表里有不同业务员的数据,第二步中,当某业务员点击编辑不是他的数据时,就不能允许他编辑。

 楼主问的第二个问题我没看明白。


--  作者:ncffcy
--  发布时间:2012/9/21 12:54:00
--  回复:(lin_hailun) 数据表里有不同业务员的数...

我的意思是,第一个代码已经确定了业务员为使用者。

           那么第二个代码是不是有必要再判断一下业务员和用户名的不同。因为使用者已经是业务员了,如果业务员不一样的话肯定会在第一条代码处更改。

那么这条代码的具体作用是什么

 

 


--  作者:ncffcy
--  发布时间:2012/9/21 13:03:00
--  回复:(jspta)没有矛盾。这个是多人共同录入同一行的...
好像有点明白了