我想知道如何在连接到Google表格的AppSheet移动应用程序中防止重复输入(基于我自己的客户/项目定义,这取决于以下内容)。
AppSheet讲述了很多关于UNIQUEID()的内容,他们也鼓励使用和指定为KEY字段。 row_number是另一种可能性
这对于KEY来说是好的,因为它的目的是独特,无意义,并且唯一地标识记录,并且与其他表相关。
但是,它并不会阻止重复("重复"再次,由我自己的客户的业务规则和流程定义)发生。我的意思是,我认为UniqueId()在理论上会是,但这是抽象理论,因为它无论如何都会产生独特的理论。
我的桌子有这些栏目:[设施号码]和[TIMESTAMP](活动的日期和时间)。我们认为它是一个重复事件,并且如果第二条记录具有相同的DATE(时间不相关),并且具有相同的FACILITY,则要禁止向此表添加此类记录。 (我们每天只做一次设施)。
在AppSheet中,如何根据该条件创建一些不允许添加的逻辑?我甚至基本上知道我会做的一些方法。我觉得我无法找到一个地方放置"它。我创建了一个完全评估为TRUE或FALSE的表达式,并且没有其他内容(通过引用所添加的新记录上的FACILIY NUMBER是否在我已定义为今天的条目的SLICE中)。我想将此表达式放在另一个(随机)字段的VALIDIF中。对我来说,似乎符合平台文档。只有当表达式求值为true时,其他随机字段才被视为有效。但相反,appsheet认为我想将整个[其他随机列]转换为依赖的下拉列表。
请帮忙!当应用程序表介绍在键入,保存等时可以挂钩的FORM事件和RECORD事件时,我会哭泣。
答案 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>]))))))
从技术上说:
必须将此语句定义为-并将&和的正确值定义为Valid_If语句。
此致
HerrB92