常见问题
遇到问题了吗?不用担心,答案都在这。
全站搜索

为什么公式没有触发或结果错误?

在 Ragic 中使用公式时,你可能会遇到以下情况:

“为什么第一次设置公式时有计算出结果,但后来修改公式后字段却没有更新?”

“为什么透过汇入数据、更新其他表单字段值,或使用抛转功能后,公式没有被触发?”

这是因为 Ragic 公式的运作有一项基本原则:公式只会在输入的地方触发。也就是说,在没有额外设置的情况下,公式只会在你手动输入或编辑数据时,且是在输入数据位置的同一个表单(接口)上才会被触发。

一、公式只会在输入数据的“当下”触发

当你在表单中新增数据后,若之后才在设计模式中新增或修改字段的公式,回到数据查看时可能会发现该字段没有依照新设置的公式计算出新的字段值。

这就是因为“公式只会在输入数据的当下触发”。也就是说,如果数据已经填写完成才修改公式,新的公式将不会自动套用在既有数据上。只有重新编辑该笔数据,公式才会被重新触发并更新字段值。

这除了考量公式运算的效能,也是因为许多状况下公式的修改不应该套用在旧数据上,比较详细的举例可以参阅公式文档这部分的详细说明

如果希望调整公式之后的结果套用在所有现有数据上,除了手动重新编辑数据以触发公式,也可以运行一次公式重算(属于利用程序在后端触发的情况,非手动自然触发公式运算)。

二、公式只会在输入数据位置的同一个表单(接口)上触发

即便数据有变动,若不是在公式所套用的表单中进行修改,就不会触发该表单的公式。

以“订单”为例,即使在其他表单(例如“商品”)中编辑了价格数据,也不会自动触发“订单”上的公式。必须直接在“订单”表单中编辑数据(例如输入新的订购数量),才会触发该表单上的公式计算。

此外,若你并非直接在“订单”中手动编辑数据,而是透过 Ragic 的其他功能从其他地方更新“订单”的数据,那么公式并不一定会自动触发,需要进行额外设置。以下分别说明:

以动作单击钮或汇入来更新别张表单数据

透过更新别张表单字段值数据抛转动作单击钮、或汇入数据来修改字段时,若没有勾选进阶设置中的“重新计算公式”,则该表单公式不会自动触发。

同张表单的列表页与表单页

由于表单页和列表页在设计上属于不同的接口,在公式触发上不被视为“同一个地方”,因此可分别设置各自的公式。若你只在表单页套用了公式,在列表页修改数据时将不会触发该公式;反之亦然。

若你经常需要在列表页直接输入或修改数据,建议除了在表单页设计模式中套用公式外,也应将相关字段加入列表页,并在列表页的设计模式中设置相同的公式,以确保公式能正确运作。

多版本工作表

多版本工作表中的每个版本在公式设置上是彼此独立的,因此若有需要,应分别在各版本中设置公式。

若同一个字段在不同版本中使用不同的公式,请务必确保计算结果一致,以避免字段值在不同版本间被覆盖。

建议可透过字段信息功能,一次检视同一个字段在所有不同版本表单的公式设置。

子表格生成新表单/参照子表格

针对子表格生成的新表单、参照子表格(显示从其他表单的链接)的情况,可在表单页设计模式 > 左侧工具条中的表单设置中勾选保存时触发“源表单(默认已勾选)”或“相关表单”的全部公式重算。相关说明请参阅此链接

三、其他公式没有触发的原因

1. 公式句法错误

请先确认公式是否设置正确,并特别留意使用条件公式(IF 公式)时要注意以下事项:

(1) 参阅这篇说明,确认是否需要在公式内容中加入 .RAW。

(2) 若条件公式中搭配使用 TODAY() 或 NOW(),需注意目前系统尚不支持将这两个函数直接加入 IF() 中进行运算。请先另外新增一个字段计算 TODAY() 或 NOW(),再于条件公式中引用该字段。相关说明与范例可参阅这里

2. 字段格式与公式不相符

有些公式的设置跟字段种类有关系,例如加减运算、比大小这些只适用于数值金额日期等字段。

3. 自动生成字段导致的公式重算错误

自动生成字段最后保存的值并不一定是新增数据时显示在该字段上的值,因为可能有两个人同时在同一张表单新增数据,这时候两个人的自动生成值会是相同的,但其中一人先保存,另一个人保存后就会跳为下一个序号, 以避免重复。

但如果有别的字段套用公式参照这个自动生成字段,保存前看起来前端公式重算正确,但保存后就会发现前端公式重算错误了。

所以建议如果表单中有别的字段套用公式参照自动生成字段,要自行写 post workflow 在保存时自动运行后端公式重算

4. 使用 TODAY 公式遇到每日公式重算问题

可参阅此篇说明来排除。

后端公式重算的方法

若希望修改旧数据后可以触发相关公式,除了进入设计模式运行整张表单的公式重算,也可以新增一个套用表单上所有公式到此笔数据动作单击钮

若有需求让系统每天自动重算一次表单上的公式(例如使用 TODAYTZ() 判断当日日期),则可以设置每日公式重算的工作流程。

    马上登记
    免费试用 Ragic!

    用 Google 帐号登记

    立即科技 Ragic, Inc.
    02-7728-8692
    info@ragic.com
    台北市中正区南昌路二段81号9楼
    用户条款 | 隐私权政策