找回密码
 立即注册

QQ登录

只需一步,快速开始

妄想社成员 活字格认证

高级会员

73

主题

394

帖子

1809

积分

高级会员

积分
1809

时代开发者征文活动活字格认证圣诞拼拼乐

QQ
妄想社成员 活字格认证
高级会员   /  发表于:2024-2-29 22:43  /   查看:1525  /  回复:12
100金币
本帖最后由 妄想社成员 于 2024-3-2 21:17 编辑

对于页面上一个带有命令的文本框,将文本框上的值设置为=NOW(), 这个文本框在页面加载后的执行情况,我验证处了三种情况,

1.单纯文本框命令+公式 是不会触发的
2.弹出页不绑定字段,其他页传一个值到弹出页单元格上,会触发一次
3.如果页面打开时有字段,或者有设置当前行,会触发一次
4.如果页面上绑定了表格加载数据,会触发两次



这让我很困惑,很多时候希望 文本框上既可以值变更时触发命令,也可以在页面加载后执行一次命令,充当一个命令自动执行器,然而当页面与表格字段不挂钩时,命令就不会在页面加载后执行,当有表格时,居然会执行两次。

希望版主大大能指导一下这个策略,为何这样?有没有一个统一的标准或者说法?



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

感谢各位大佬的支持~ 不清楚您这个问题原因是否和楼主的问题原因是否相同,建议您重新发一个帖子交流哈。 这边儿反馈一下楼主问题的调查结果 =now()是一个比较特殊的公式,因为它计算的是当前的时间,所以页面中只要有数据变动,这个公式都会进行重算。 所以在弹出页面传值时,弹出页面时有数据变化,now函数就会重算,不同时间得到的now的值肯定是不同的,所以就会触发文本框的值变更命令,弹出页面有绑定字段的时候同理,绑 ...

12 个回复

倒序浏览
最佳答案
最佳答案
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-2-29 22:43:09
来自 13#
感谢各位大佬的支持~
不清楚您这个问题原因是否和楼主的问题原因是否相同,建议您重新发一个帖子交流哈。
这边儿反馈一下楼主问题的调查结果
=now()是一个比较特殊的公式,因为它计算的是当前的时间,所以页面中只要有数据变动,这个公式都会进行重算。
所以在弹出页面传值时,弹出页面时有数据变化,now函数就会重算,不同时间得到的now的值肯定是不同的,所以就会触发文本框的值变更命令,弹出页面有绑定字段的时候同理,绑定字段再页面加载时也会有数据变化,也会触发now函数的重算,

页面绑定表格也是相同的,绑定表格时,页面加载时会从数据库中去数据,页面数据会发生多次变化,会多次触发now函数的重算,如果这多次变化都显示在文本框中的话,对于用户来说就会看到文本框的内容再不停变化。所以活字格有个合并策略是短时间内值发生变化时,文本框值都先不变,等几十毫秒后,再显示最终结果,然后触发命令。所以页面中绑定表格时,有时会触发一次值变更命令,有时会触发两次


回复 使用道具 举报
妄想社成员活字格认证
高级会员   /  发表于:2024-2-29 22:49:36
2#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
妄想社成员活字格认证
高级会员   /  发表于:2024-2-29 23:01:16
3#

  而且这个绑定了表格的,有概率是1,只执行了一次

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
逛逛逛
金牌服务用户   /  发表于:2024-3-1 08:41:27
4#
本帖最后由 逛逛逛 于 2024-3-1 08:42 编辑

用值变更原因过滤,自己控制逻辑呢



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
妄想社成员活字格认证
高级会员   /  发表于:2024-3-1 09:02:05
5#
逛逛逛 发表于 2024-3-1 08:41
用值变更原因过滤,自己控制逻辑呢

我并不是要实现什么需求,我是要弄清楚这个页面加载后的触发机制
回复 使用道具 举报
逛逛逛
金牌服务用户   /  发表于:2024-3-1 09:08:47
6#
妄想社成员 发表于 2024-3-1 09:02
我并不是要实现什么需求,我是要弄清楚这个页面加载后的触发机制

用这个来输出看看触发的顺序啊:如果加载触发就输出加载,如果公式触发就输出公式
回复 使用道具 举报
小年糕
金牌服务用户   /  发表于:2024-3-1 11:05:14
7#

我大概知道原因:
前一阵我用组件,组件中绑定了属性,同时又写了一个odata公式

在属性变更命令中,弹了个消息

运行,发现会触发2次命令。
但是同样的操作,在文本框中只会触发一次命令,根据我试的结果,可能是下面的原因:
不管是单元格,还是组件,其实值中间都可能会出现多次变更,因为有绑定,有公式,可能还会有传值。
所以正常来说,只要有变更,都会触发命令。
估计文本框单元格做了下处理,特别短时间内的变更,合成一个,不然的话,页面上文本框里面的值会变化,比如从空到a又到b最后逻辑都走完,最终显示的是C,那样岂不是文本框值在短时间内来回变化~
不知道我猜的对不对,等待官方技术支持的回复~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-3-1 17:32:32
8#
感谢大佬的支持,现在确实会出现这种情况,若是页面上有值变更,引用NOW()公式的地方就会刷新公式,若是页面上没有值变更,那么NOW()就不会刷新,而当页面上个表格初次加载的时候,会引起NOW()公式两次刷新,这个应该是表格在加载单元格数据的时候,导致页面上单元格的值被改变两次,所以NOW()也被触发了两次。
回复 使用道具 举报
妄想社成员活字格认证
高级会员   /  发表于:2024-3-1 17:43:09
9#
Grayson.Shang 发表于 2024-3-1 17:32
感谢大佬的支持,现在确实会出现这种情况,若是页面上有值变更,引用NOW()公式的地方就会刷新公式,若是页 ...

内部原理机制是什么呢?这些是我们也测试出来的情况,还有很多情况我们没有测试出来,有必要说清楚这个页面加载后的的触发机制
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部