Foxtable(狐表)用户栏目专家坐堂 → 关于项目属性里的“全局表事件”怎么用啊~


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

主题:关于项目属性里的“全局表事件”怎么用啊~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
关于项目属性里的“全局表事件”怎么用啊~  发帖心情 Post By:2009/12/12 16:42:00 [只看该作者]

在里面设置代码后,怎么没有反应?。图片点击可在新窗口打开查看  这是个新东东啊~  

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/12/12 17:11:00 [只看该作者]

比如,您需要在临时表写事件代码,但临时表不能保存,下次打开系统是通过代码自动添加,这时您就可以用全局表事件,首先判断表名称,在执行代码即可,所执行的代码和其他表事件一样,仅仅多一个判断,判断条件的不同而适用于任何表!不知我说清楚了没有。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/12 18:54:00 [只看该作者]

全局表事件:StartEdit ::::: 没有任何反应啊 :
if maintable.name="表B" then
       Forms("窗口1").open()
end if

但在表B的StartEdit 表事件中,可以正常打开窗口。。。。   为什么呢?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/13 15:23:00 [只看该作者]

帮助文件跟不上foxtable的更新步伐啊~~         都没人试过吗?

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/12/13 16:35:00 [只看该作者]

个人观点,如果全局表事件不是仅仅对临时表有效的话,就应该是bug!

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/14 15:27:00 [只看该作者]

六爷也不解释一下, 也不知其他狐友怎么看?  都没人用过全局表事件吗???

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/14 15:31:00 [只看该作者]

if maintable.name="表B" then
       Forms("窗口1").open()
end if

应该是:

If e.Datatable.Name="表B" then
       Forms("窗口1").open()
end if

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/14 16:05:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:未命名+.jpg
图片点击可在新窗口打开查看

Datatable改成 Table 不会提示错误,但是没有效果~ 
[此贴子已经被作者于2009-12-14 16:06:09编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/14 16:17:00 [只看该作者]

项目属性增加全局表事件,包含了所有的表事件,DataTable增加一个GolbalHandler属性,该属性决定此DataTable会触发那些表事件。


例如我们将全局表事件PrePareEdit事件设为:


e.Cancel = True


按道理所有的表都是不能编辑的,但是实际上所有的表还是可以编辑,如果你在命令窗口执行:


DataTables("表A").GlobalHandler.PrepareEdit = True


执行后,表A将不能被编辑,因为执行上述代码后,表A才开始触发全局表事件PrepareEdit。


GlobalHandler包括以下成员:


     PrepareEdit
     StartEdit
     SetupEditor
     ValidateEdit
     AfterEdit
     CellButtonClick
     DoubleClick
     ChangeEdit
     KeyPressEdit
     KeyDownEdit
     KeyUpEdit
     CurrentChanged
     PositionChanged
     BeforeSelChange
     BeforeSelRangeChange
     AfterSelChange
     AfterSelRangeChange
     BeforeDragColumn
     AfterDragColumn
     BeforeFreezeColumn
     AfterFreezeColumn
     BeforeResizeColumn
     AfterResizeColumn
     BeforeResizeRow
     AfterResizeRow
     DrawCell
     DataColChanging
     DataColChanged
     DataRowAdding
     DataRowAdded
     DataRowDeleting
     DataRowDeleted
     BeforeAddDataRow
     BeforeDeleteDataRow
     BeforeLockDataRow
     AfterLockDataRow
     BeforeUnlockDataRow
     AfterUnlockDataRow
     BeforeShowContextMenu
     BeforeSaveDataRow
     BeforeRowCheck
     AfterRowCheck
     KeyDown
     KeyUp


只有将某属性设为True,对应的全局表事件才会触发,不过CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange这四个成员默认值为True,也就是这四个全局表事件,默认对所有表有效。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/14 16:44:00 [只看该作者]

DataTables("表A").GlobalHandler.PrepareEdit = True  在命令窗口执行后,全局表事件可以用了。
但是,一般把它放在哪比较好? 项目启动时 还是 MainTableChanged 中? 慢慢体会吧~   谢谢。

 回到顶部
总数 11 1 2 下一页