以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 关于项目属性里的“全局表事件”怎么用啊~ (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5458)
|
-- 作者:mr725
-- 发布时间:2009/12/12 16:42:00
-- 关于项目属性里的“全局表事件”怎么用啊~
在里面设置代码后,怎么没有反应?。 这是个新东东啊~
|
-- 作者:程兴刚
-- 发布时间:2009/12/12 17:11:00
--
比如,您需要在临时表写事件代码,但临时表不能保存,下次打开系统是通过代码自动添加,这时您就可以用全局表事件,首先判断表名称,在执行代码即可,所执行的代码和其他表事件一样,仅仅多一个判断,判断条件的不同而适用于任何表!不知我说清楚了没有。
|
-- 作者:mr725
-- 发布时间:2009/12/12 18:54:00
--
全局表事件:StartEdit ::::: 没有任何反应啊 : if maintable.name="表B" then Forms("窗口1").open() end if
但在表B的StartEdit 表事件中,可以正常打开窗口。。。。 为什么呢?
|
-- 作者:mr725
-- 发布时间:2009/12/13 15:23:00
--
帮助文件跟不上foxtable的更新步伐啊~~ 都没人试过吗?
|
-- 作者:程兴刚
-- 发布时间:2009/12/13 16:35:00
--
个人观点,如果全局表事件不是仅仅对临时表有效的话,就应该是bug!
|
-- 作者:mr725
-- 发布时间:2009/12/14 15:27:00
--
六爷也不解释一下, 也不知其他狐友怎么看? 都没人用过全局表事件吗???
|
-- 作者:狐狸爸爸
-- 发布时间: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
-- 发布时间:2009/12/14 16:05:00
--
此主题相关图片如下:未命名+.jpg

Datatable改成 Table 不会提示错误,但是没有效果~
[此贴子已经被作者于2009-12-14 16:06:09编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间: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
-- 发布时间:2009/12/14 16:44:00
--
DataTables("表A").GlobalHandler.PrepareEdit = True 在命令窗口执行后,全局表事件可以用了。 但是,一般把它放在哪比较好? 项目启动时 还是 MainTableChanged 中? 慢慢体会吧~ 谢谢。
|