找回密码
 立即注册

QQ登录

只需一步,快速开始

行男一定行

高级会员

157

主题

465

帖子

1458

积分

高级会员

积分
1458
行男一定行
高级会员   /  发表于:2021-10-18 17:08  /   查看:1621  /  回复:2
1金币
本帖最后由 Chelsey.Wang 于 2021-10-28 18:56 编辑

异步获取数据后,将数据写入jarvis单元格中,然后在用odata公式去判断数据是否在数据表中,如果不在页面就跳转到登陆页面,如果在就不跳转
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,首先您这里不能直接使用ODATA公式查询,因为ODATA公式查询需要时间,在它开始没有查的时候,会返回#N/A,在它查询后,如果在表中没有对应的ID,也是会返回#N/A,IFERROR后都是0,因此是没有办法通过ODATA的返回值判断是正在查询中还是表中无对应值的,自然后续不能据此跳转。 这个问题的解决思路其实和之前的帖子中给出的思路完全一致: 如何将异步操作变成同步操作 - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grap ...

2 个回复

倒序浏览
最佳答案
最佳答案
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-18 17:08:36
来自 3#
本帖最后由 Chelsey.Wang 于 2021-10-18 18:18 编辑

您好,首先您这里不能直接使用ODATA公式查询,因为ODATA公式查询需要时间,在它开始没有查的时候,会返回#N/A,在它查询后,如果在表中没有对应的ID,也是会返回#N/A,IFERROR后都是0,因此是没有办法通过ODATA的返回值判断是正在查询中还是表中无对应值的,自然后续不能据此跳转。

这个问题的解决思路其实和之前的帖子中给出的思路完全一致:
如何将异步操作变成同步操作 - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)

只是由于odata查询结果的影响,2步操作需要分为3步来实现:
1.获取id并返回值到页面
2.id获得后触发odata
3.获得odata的结果触发后续逻辑

为了解决这个问题,区分odata返回的结果是否已查询后的,您需要用一个单元格num承接odata查询的结果,并在页面加载时命令中先给单元格设置值为-1(这里以查询行数为例,因为odata查行数是不可能查出来-1,可以和查出来行数为0的情况做区分)

给jarvis设置命令,这样当获取到id后,才会触发odata查询,然后将结果返回到num单元格。

这样当num为-1时,说明odata还未查询,不会影响后续是否为0的条件判断,而当odata查询完毕后,num的值会变化,并触发num单元格上后续的命令

附上demo,您可以参考一下:



本帖子中包含更多资源

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

x
回复 使用道具 举报
zyk.Zhou活字格认证
论坛元老   /  发表于:2021-10-18 17:19:43
2#
本帖最后由 zyk.Zhou 于 2021-10-18 17:51 编辑

这样?


这个效果好一点

本帖子中包含更多资源

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

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部