Foxtable(狐表)用户栏目专家坐堂 → 建议:建议把DatacolChanged事件变得智能一些!


  共有24341人关注过本帖树形打印复制链接

主题:建议:建议把DatacolChanged事件变得智能一些!

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/14 8:29:00 [显示全部帖子]

这个不用讨论,因为是绝无可能的。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/14 9:17:00 [显示全部帖子]

其实不用分析的,一个表的DataColChanged事件,少则有一两个,多则有几十个计算关系,代码少则几行,多则几百行,前面的Select Case也好,If Then也好,其实还有代码分段的功能,如果没有这些分段语句,所有代码混在一起,你单单凭列名,如何知道从那一行代码开始,执行到那一行代码结束?




 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/14 10:31:00 [显示全部帖子]

以下是引用fangling在2009-6-14 10:22:00的发言:

我理解楼主的意思,因为foxtable只有表事件,没有列事件,这可能是为了减低复杂程度。表的任何列发生改变都必须通过表事件来处理,而表事件是通过判断来确定变化的列;而列事件只是在该列的发生变化时才触发列事件。在有些场合代码写在列事件中比在表事件中执行效率要好一些。如果有必要,老六是否考虑增加一个列事件?

[此贴子已经被作者于2009-6-14 10:23:20编辑过]


呵呵,我也考虑过列事件,但是决大多数时候,列事件只是将代码搞得更为复杂,例如金额由数量、单价、折扣计算得出,那么同样的代码要设置在数量、单价、折扣三列的事件中,显然用表事件更为合理:

Select e.DataCol.Name
   Case "数量","单价","金额"
       e.DataRow("金额") = .....
   Case  "列1","列2"
      e.DataRow("列3") = ...
   Case  "例5"
      e.DataRow.Locked = True
End Select

这样不仅条理清晰,而且便于维护,这也是为什么最初的针对列的计算代码被删除的原因。

[此贴子已经被作者于2009-6-14 10:34:26编辑过]

 回到顶部