以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 窗口属性建议 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178656) |
-- 作者:z769036165 -- 发布时间:2022/7/14 9:15:00 -- 窗口属性建议 能不能增加个加载窗口前执行BeforeLoad的属性? |
-- 作者:有点蓝 -- 发布时间:2022/7/14 9:51:00 -- 有什么用处? |
-- 作者:z769036165 -- 发布时间:2022/7/14 13:48:00 -- 项目大,很多表都处于卸载状态,需要这个窗口启动前先加载表 |
-- 作者:有点蓝 -- 发布时间:2022/7/14 14:08:00 -- 只能自己控制窗口的打开,然后在打开前加载表格,比如 datatables.load("某某表") forms("窗口1").open
|
-- 作者:z769036165 -- 发布时间:2022/7/15 19:40:00 -- 但是这种情况就很头疼 如有2个主窗口,一个窗口A,一个窗口B,其绑定的表都是表1,每个窗口其关闭后事件都是卸载表1 在自定义菜单中有N个按钮,其中有2个按钮btn1和btn2,一个设置打开窗口A,一个设置打开窗口B,这2个按钮都同时设置打开窗口前,判断是否存在表1,如不存在则加载表1, 如果,btn1和btn2不相互连点的情况下,是没问题不报错的,但是一旦先点击btn1,然后点击btn2就会报错, 分析原因是,在菜单中点击btn1后,会加载表1,打开窗口A,然后在点击btn2时,先判断是否存在表1,这时确实也已经加载了,但是在切换窗口B时,会关闭窗口A,此时,窗口A把表1给卸载了,这样btn2就报错了 主窗口A----绑定表1(关闭后卸载表1) 主窗口B----绑定表1(关闭后卸载表1) btn1--打开窗口A(加载表1) btn2--打开窗口B(加载表1) 当先点击btn1 加载表1--显示窗口A 如果点击其他按钮,然后点击btn2(表1不存在,加载表1),功能正常 如果直接点击btn2时(表1已存在,不加载表1),然后打开窗口B,同时关闭窗口A(卸载表1),此时表1不存在了,窗口B报错 [此贴子已经被作者于2022/7/15 19:50:04编辑过]
|
-- 作者:lgzhao -- 发布时间:2022/7/16 9:11:00 -- 我的系统也是。觉得这个事件很有必要 |
-- 作者:有点蓝 -- 发布时间:2022/7/16 9:34:00 -- 这种情况本来就是互斥的。就算加个BeforeLoad也一样没有用。 如果多个窗口会用到同一个表,最好的做法就是不要卸载表
|
-- 作者:lgz518 -- 发布时间:2022/7/16 10:03:00 -- 1.其实很简单,狐表把它复杂化,因为狐表是以表模式开发,不是以窗口模式开发,要以狐表用窗口模板开发,相当复杂,因为大家都用右手拿餐具吃饭,狐表是用左手,你要用狐表,你只能适应狐表,也要左手。 2.狐表一般不接受建议,它有它想法,论坛有很建议多,现在大家懂,比较少再提建议。 3.有一点,我想不明白,EXECL想变得专业,加上VBA,建立窗口,使它越来越专业,为什么狐表本是开发台,却走向EXECL,但不是EXEC模式 4.论坛上有一贴子,以窗口开发为主的贴子的浏览人数非常多,不知道狐表官方是否注意。 5.也许有人说,大家都在用,也开发界面不错,也有窗口,其实,一种被大部分用户说情况加上,它的本质还是表模式。 如果以窗口模式开发,是很简单,只一个窗口即可,在窗口事件只加载你需要表即可,不是考虑什么系统加载表,却表,这样加工作,还容易失错,大家都知道,言多必失,写太多,设置太多,必然会有冲突。 |
-- 作者:z769036165 -- 发布时间:2022/7/16 10:13:00 -- 如果多个窗口会用到同一个表,最好的做法就是不要卸载表 多窗口使用同一个表,不是这些多窗口都会打开,这些功能会用上这个表,如果都不卸载表,那这个表内容太多了,然后回到之前提的一个问题,加载表太多,占用内存多,任何操作速度就都会变慢,变卡 如果BeforeLoad这样解决不了,那想想办法看是否有方法去解决呢?
|
-- 作者:有点蓝 -- 发布时间:2022/7/16 10:34:00 -- 加载表本身用不了多少内存的,主要是加载的数据占用内存。可以考虑改为移除数据,比如 datatables().removefor("") 或者 datatables().loadfilter = "1=2" datatables().load 或者 关闭窗口A,然后打开窗口B的时候,窗口B的表格根据需要按条件加载自己需要的数据 datatables().loadfilter = "窗口B需要的条件" datatables().load |