Filemaker计算以在列表中正确显示逗号

时间:2010-12-09 20:14:46

标签: filemaker

我有一个项目列表,如果它们被标记,我需要在报告中显示。正如您在下面的代码中看到的,它只不过是用逗号分隔的数字列表。问题是如果#1不在列表中,则列表前面总是以逗号开头。我可以将逗号移到最后但是如果它不是我计算中的最后一个数字,那么在最后一个数字之后我会遇到同样的问题。有没有人知道如何调整这个,所以逗号只出现在数字之间?如果我能在最后一个数字之后获得一段时间,那将会很棒。

//备件计算

如果($ {1} =“备用”且panelSize≥1;“1”;“”)&

如果($ {2} =“备用”且panelSize≥2;“,2”;“”)&

如果($ {3} =“Spare”且panelSize≥3;“,3”;“”)&

如果($ {4} =“Spare”且panelSize≥4;“,4”;“”)&

2 个答案:

答案 0 :(得分:5)

您可以使用List功能,因为它排除了空项目。只需将您的数字和空字符串作为参数传递给List,然后用逗号替换换行符,并在nend上添加句号。

Substitute ( List("1" ; "" ; "3" ; "4") ; "¶" ; ", ") & "."

以上结果如下:

1, 3, 4.

在您的示例中,您可以将Case语句用作List的参数:

Substitute ( List(
     Case ( ${1} = "Spare" and panelSize ≥ 1 ; "1" ) ;
     Case ( ${2} = "Spare" and panelSize ≥ 2 ; "2" ) ;
     Case ( ${3} = "Spare" and panelSize ≥ 3 ; "3" ) ;
     Case ( ${4} = "Spare" and panelSize ≥ 4 ; "4" ) ;
) ; "¶" ; ", ") & "."

答案 1 :(得分:0)

你可能正在努力解决你正在做的事情,但是如果没有看到更多细节,只需将你的计算结果更改为:

If ( ${1} = "Spare" and panelSize ≥ 1 ; "1, " ; "" ) &

If ( ${2} = "Spare" and panelSize ≥ 2 ; "2, " ; "" ) &

If ( ${3} = "Spare" and panelSize ≥ 3 ; "3, " ; "" ) &

If ( ${4} = "Spare" and panelSize ≥ 4 ; "4, " ; "" )

然后,您可以将最后一个“,”更改为“。”但您可能需要先检查最终值中出现的数量(如果有)。使用Let函数将结果放入一个可以在以后操作的变量中。