以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]独占式编辑表编辑时间使用全局表事件不触发  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152192)

--  作者:crazyfengyu
--  发布时间:2020/7/9 10:07:00
--  [求助]独占式编辑表编辑时间使用全局表事件不触发
由于所有表都需要进行独占式编辑,所以将表编辑的事件,写在了项目事件中的全局表事件,但是全局表事件一直不触发,在事件第一行使用弹框都没有弹出来,代表表事件压根就没有触发
--  作者:crazyfengyu
--  发布时间:2020/7/9 10:15:00
--  
使用下面的开启了表事件有效了,但是如果是代码直接控制的表修改无法监听到。而且好像一个人编辑完了,另一个可以直接编辑,都不知道需不需要刷新当前数据

dt
.GlobalHandler.AfterEdit
= True 
--  作者:有点蓝
--  发布时间:2020/7/9 10:21:00
--  
代码直接控制的表一样要开启了表事件,在控制代码之后开启
--  作者:crazyfengyu
--  发布时间:2020/7/9 10:29:00
--  
For Each dt As DataTable In DataTables
    dt.GlobalHandler.StartEdit= True
Next
For Each dt As DataTable In DataTables
    dt.GlobalHandler.BeforeSaveDataRow= True
Next
For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit= True
Next

我开启了上面3个表事件
1.代码控制修改控制的表事件是哪个?
2.一个人修改了退出了编辑,另一个可以直接在进行编辑,都不知道需不需要进行数据刷新,这样独占式编辑好像没有起到很大的作用,是不是我按照链接的写法有问题?

--  作者:有点蓝
--  发布时间:2020/7/9 10:44:00
--  
比如:tables("窗口1——table1").fill(xxxxx)
tables("窗口1——table1").datatable.GlobalHandler.StartEdit= True
tables("窗口1——table1").datatable.GlobalHandler.xxxx= True

--  作者:crazyfengyu
--  发布时间:2020/7/9 10:54:00
--  
我把表事件都开启了,然后
例如:订单表
订单号 状态 时间
0001 草稿 20200709

按钮: 提交
提交代码:
dim r as row = tables("订单表").Current
if r("状态") = "草稿" then
r("状态") = "待审批"
end if
if datatables("订单表").Haschanges then
datatables("订单表").Save
end if

点击提交按钮将订单表当前行状态改为了待审批,独占式编辑就没有监听到


--  作者:有点蓝
--  发布时间:2020/7/9 11:12:00
--  
全局表事件有没有触发?如果没有触发,说明没有开启
--  作者:crazyfengyu
--  发布时间:2020/7/9 11:20:00
--  
一个人修改了退出了编辑,另一个可以直接在进行编辑,都不知道需不需要进行数据刷新,这个怎么处理?
--  作者:有点蓝
--  发布时间:2020/7/9 11:23:00
--  
既然都退出了编辑,别人当然可以编辑。如果要看最新数据,肯定要刷新的。可以在startedit事件调用e.row.datarow.load加载
--  作者:有点蓝
--  发布时间:2020/7/9 11:23:00
--  
或者结合这个:http://www.foxtable.com/webhelp/topics/3006.htm