搜索操作员在Filemaker中触发字段验证

时间:2014-12-19 11:01:48

标签: validation filemaker

我在使用Filemaker Pro 13中经过验证的字段中搜索搜索运算符时遇到了一些麻烦。

我有一个字段,它具有验证" 仅数字",因为它存储了一个数值。但是,当我进入查找模式时,我无法使用其中一个预定义的搜索运算符,例如* for" 零个或多个字符"甚至#for" 任何一个数字"。

当我在字段中输入其中一个运算符并尝试搜索时,Filemaker会给我一个验证错误,并说字段内容必须是数字。

有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:1)

那令人生气。

我只是:

  • 创建了一个测试文件
  • 创建了一个数字字段
  • 添加了Strict data type选项并将其设置为Numeric Only
  • 确保验证设置为Only during data entry,不应参与查找模式
  • 创建了几条记录并将值插入字段
  • 执行*的查找并收到相同的错误消息

这对我来说就像FileMaker中的一个错误。我不记得在以前的版本中遇到过它,但它也可能存在。我不认为查找模式是一种数据输入模式,因此您认为验证规则不适用。

所有这一切,你可以使用calc字段作为解决方法。

在同一个表格中创建一个计算字段,并将其命名为yourfieldnameSEARCH,例如idSEARCH。字段的计算可以只是您实际要搜索的字段:

e.g. `mytable::idSEARCH = mytable::id`

您可以为计算字段将索引设置为All,以便更快地进行搜索。由于计算字段与其参考表在同一个表中,因此对原始字段的修改将自动反映在计算中。

现在,您可以在SEARCH特定字段中进行搜索,而无需应用验证。

至于" bug"本身,您可以将其提交给FileMaker,也许他们会照顾它或者至少解释它为什么会发生。

答案 1 :(得分:1)

这至少可以追溯到FileMaker 11。

问题是*#是字符串中字符的占位符。数值运算符<><=>=...即使只有严格的数据数据类型也能正常工作。 =也可以找到空白值。

但是,对于真正的数字字段,这些字段应涵盖大部分搜索内容:

  • 要查找空白值,请在数字字段中搜索=
  • 要查找所有非空白值,请在数字字段中搜索=,然后点击记录中的omit
  • 要在x和y之间查找值,请在搜索字段中使用x...y

复制#运算符比较棘手。您可以使用计算数字mod的新字段或将数字字段转换为字符串并获取第n个字符来复制它。

答案 2 :(得分:1)

显然,这种形式的验证适用于文本字段。

请注意,大多数查找运算符都可以正常运行,但验证结果为:===!?,{{1} }和所有比较运算符...

如果此处存在错误,则会涉及< > ≤ ≥运算符,哪个Filemaker expressly designates要查找&#34; 数字字段中的一个或多个数字&# 34。

两种可能的解决方法:

  1. 将字段的类型更改为文本(请注意,这可能会影响字段的排序方式);

  2. 将严格数字类型验证替换为计算验证。