appsheet防止重复条目

时间:2016-04-05 21:05:45

标签: google-apps-script google-sheets mobile-application

我想知道如何在连接到Google表格的AppSheet移动应用程序中防止重复输入(基于我自己的客户/项目定义,这取决于以下内容)。
AppSheet讲述了很多关于UNIQUEID()的内容,他们也鼓励使用和指定为KEY字段。 row_number是另一种可能性 这对于KEY来说是好的,因为它的目的是独特,无意义,并且唯一地标识记录,并且与其他表相关。

但是,它并不会阻止重复("重复"再次,由我自己的客户的业务规则和流程定义)发生。我的意思是,我认为UniqueId()在理论上会是,但这是抽象理论,因为它无论如何都会产生独特的理论。

我的桌子有这些栏目:[设施号码]和[TIMESTAMP](活动的日期和时间)。我们认为它是一个重复事件,并且如果第二条记录具有相同的DATE(时间不相关),并且具有相同的FACILITY,则要禁止向此表添加此类记录。 (我们每天只做一次设施)。

在AppSheet中,如何根据该条件创建一些不允许添加的逻辑?我甚至基本上知道我会做的一些方法。我觉得我无法找到一个地方放置"它。我创建了一个完全评估为TRUE或FALSE的表达式,并且没有其他内容(通过引用所添加的新记录上的FACILIY NUMBER是否在我已定义为今天的条目的SLICE中)。我想将此表达式放在另一个(随机)字段的VALIDIF中。对我来说,似乎符合平台文档。只有当表达式求值为true时,其他随机字段才被视为有效。但相反,appsheet认为我想将整个[其他随机列]转换为依赖的下拉列表。

请帮忙!当应用程序表介绍在键入,保存等时可以挂钩的FORM事件和RECORD事件时,我会哭泣。

2 个答案:

答案 0 :(得分:1)

很惊讶在stackoverflow中看到这个问题---大多数AppSheet问题都在http://community.appsheet.com。 简单的回答是,您正在提供Valid_If约束。你的约束形式是IN([_ THIS],)所以AppSheet正在做" smart"通过自动将该列表转换为允许值的下拉列表的事情。从你的帖子看来,你似乎可能想要说NOT(IN([_ THIS],)) - 从而说值[_THIS]只要它不在指定的列表中就有效(确保它是不重复)。

答案 1 :(得分:0)

旧问题,但如果有人偶然发现相同问题:

(不是那么简单)答案在https://help.appsheet.com/en/articles/961274-list-expressions-and-aggregates中给出。

从参考文献:

NOT(IN([_ THIS],SELECT(Customers [State],NOT(IN([CustomerId], LIST([_ THISROW]。[CustomerId])))))))):用作Valid_If 状态列的条件,以确保每个客户都有一个 国家的独特价值。在此示例中,我们假设CustomerId为 客户表的键。

可以这样写得更示意图:

NOT(IN([_THIS], SELECT(<TableName>[<UnqiueColumnName>], NOT(IN([<KeyColumnName>], LIST([_THISROW].[<KeyColumnName>]))))))

从技术上说:

  1. 为我获取表中列的当前值列表
  2. 忽略当前行的值(由[_THISROW]标识并查看该列)
  3. 检查结果列表中是否存在给定值

必须将此语句定义为-并将&和的正确值定义为Valid_If语句。

此致

HerrB92