Foxtable(狐表)用户栏目专家坐堂 → 窗口属性建议


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

主题:窗口属性建议

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


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
窗口属性建议  发帖心情 Post By:2022/7/14 9:15:00 [只看该作者]

能不能增加个加载窗口前执行BeforeLoad的属性?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/14 9:51:00 [只看该作者]

有什么用处?

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


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2022/7/14 13:48:00 [只看该作者]

项目大,很多表都处于卸载状态,需要这个窗口启动前先加载表

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/14 14:08:00 [只看该作者]

只能自己控制窗口的打开,然后在打开前加载表格,比如

datatables.load("某某表")
forms("窗口1").open

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


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/7/16 9:11:00 [只看该作者]

我的系统也是。觉得这个事件很有必要

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/16 9:34:00 [只看该作者]

这种情况本来就是互斥的。就算加个BeforeLoad也一样没有用。

如果多个窗口会用到同一个表,最好的做法就是不要卸载表

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/7/16 10:03:00 [只看该作者]

1.其实很简单,狐表把它复杂化,因为狐表是以表模式开发,不是以窗口模式开发,要以狐表用窗口模板开发,相当复杂,因为大家都用右手拿餐具吃饭,狐表是用左手,你要用狐表,你只能适应狐表,也要左手。
2.狐表一般不接受建议,它有它想法,论坛有很建议多,现在大家懂,比较少再提建议。
3.有一点,我想不明白,EXECL想变得专业,加上VBA,建立窗口,使它越来越专业,为什么狐表本是开发台,却走向EXECL,但不是EXEC模式
4.论坛上有一贴子,以窗口开发为主的贴子的浏览人数非常多,不知道狐表官方是否注意。
5.也许有人说,大家都在用,也开发界面不错,也有窗口,其实,一种被大部分用户说情况加上,它的本质还是表模式。

如果以窗口模式开发,是很简单,只一个窗口即可,在窗口事件只加载你需要表即可,不是考虑什么系统加载表,却表,这样加工作,还容易失错,大家都知道,言多必失,写太多,设置太多,必然会有冲突。


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


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2022/7/16 10:13:00 [只看该作者]

如果多个窗口会用到同一个表,最好的做法就是不要卸载表

多窗口使用同一个表,不是这些多窗口都会打开,这些功能会用上这个表,如果都不卸载表,那这个表内容太多了,然后回到之前提的一个问题,加载表太多,占用内存多,任何操作速度就都会变慢,变卡

如果BeforeLoad这样解决不了,那想想办法看是否有方法去解决呢?

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/16 10:34:00 [只看该作者]

加载表本身用不了多少内存的,主要是加载的数据占用内存。可以考虑改为移除数据,比如
datatables().removefor("")

或者
datatables().loadfilter = "1=2"
datatables().load

或者
关闭窗口A,然后打开窗口B的时候,窗口B的表格根据需要按条件加载自己需要的数据
datatables().loadfilter = "窗口B需要的条件"
datatables().load

 回到顶部