Function 触发基于多个字段FM Pro 15 Adv中的多个值的复选框集

Function 触发基于多个字段FM Pro 15 Adv中的多个值的复选框集,function,if-statement,filemaker,Function,If Statement,Filemaker,我们需要建立一个子句函数来查询来自两个字段的数据 我们有一个“购买物品”字段和五个二手物品字段(SH项目1、SH项目2等)。如果这些字段中的一个(或两个)包含按名称列出的特定产品列表中的一个,则会启用(勾选)复选框,从而触发条件格式设置 我们已经准备好了复选框和格式,但是我找不到一个有力的方法来使用Case或PatternCount等进行IF查询来触发复选框-我有点不知所措 我尝试(成功地)使用一组简单的IF语句来触发复选框 但必须有更好的方法在值列表上触发“真”结果,而不是复制重复它,即(I

我们需要建立一个子句函数来查询来自两个字段的数据

我们有一个“购买物品”字段和五个二手物品字段(SH项目1、SH项目2等)。如果这些字段中的一个(或两个)包含按名称列出的特定产品列表中的一个,则会启用(勾选)复选框,从而触发条件格式设置

我们已经准备好了复选框和格式,但是我找不到一个有力的方法来使用Case或PatternCount等进行IF查询来触发复选框-我有点不知所措

我尝试(成功地)使用一组简单的IF语句来触发复选框

  • 但必须有更好的方法在值列表上触发“真”结果,而不是复制重复它,即(Item bunded=“Roland”;“Yes”;(sh Item 3=“Roland”;“Yes”等:
如果(项目购买=“Orla”;“是”;(项目1=“Orla”;“是”;(项目2=“Orla”;“是”;(项目3=“Orla”;“是”;“否”))


我希望能找到一种更好的方法来查询几个离散字段中十几个离散值的存在情况。

听起来你可以在IF或CASE语句中的条件之间使用or运算符来得到你想要的。另外,检查Filtervalues函数,因为它看起来与你的需要相关。

quick解决您的问题的方法可能是:

Let ( 
values = List ( Item Bought ; SH Item 1 ; SH Item 2 ; SH Item 3 ; SH Item 4 ; SH Item 5 )
;
not IsEmpty ( FilterValues ( "Orla" ; values ) )
)

如果列出的任何字段包含值“Orla”,则返回结果1(True),否则返回结果0(False)——因此您可以直接将其用作条件格式的公式


但是,正如我在上面的评论中所说的,这总体上不是一个好的解决方案。

这有点难以遵循。最突出的一点是,您有5个编号字段。这是数据结构不良的一个症状,即使您找到解决当前问题的方法,它也会给您带来无尽的问题。而不是多个字段,您应该在一个相关表中使用多个记录。嗨,米迦勒-我完全同意!这是一个MISH MASH,我的数据库中的大部分编码都是一个创可贴。我继承了数据库的第二手,而且我们的需求从早期就有了很大的发展,在某种程度上,我可能会考虑重写整个事情。我曾经考虑过这一点,但不确定前进的最佳道路。