以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Tables("临时医嘱").RaiseCurrentChanged这个方法是什么用途? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12673) |
-- 作者:kylin -- 发布时间:2011/9/11 10:57:00 -- Tables("临时医嘱").RaiseCurrentChanged这个方法是什么用途?
|
-- 作者:狐狸爸爸 -- 发布时间:2011/9/11 10:59:00 -- 强行触发事件
Table有两个特别的方法,分别是: RaiseCurrentChanged: 强行触发此Table的CurrentChanged事件
示例
假定有个订单表,希望每次选择一个订单的时候,能够自动在状态栏显示此订单客户的总订单数、总订购数量,为此可以将订单表的CurrentChanged事件代码设置为:
Dim flt As String = "客户 = \'" & Tables("订单").Current("客户") & "\'"
现在有个新的要求,希望在订单表修改客户列或者数量列内容是,能够自动刷新上面统计结果,我们可以在DataColChanged加上类似的统计代码:
Select Case e.DataCol.name
这样的设计没有大的问题,但是几乎同样的代码出现在两个地方,不仅代码冗余,而且不利于维护,因为如果要调整代码,就必须同时修改这两个事件的代码。
我们可以将DataColChanged事件代码改为:
Select Case e.DataCol.name
上述代码可以完成了同样的任务,但是代码精炼了很多,维护起来也方便了很多,因为统计代码只出现在CurrentChanged事件。 |