0

我有一个项目列表,如果它们被标记,我需要出现在报告中。正如您在下面的代码中看到的那样,它只不过是一个用逗号分隔的数字列表。问题是如果 #1 不在列表中,那么列表总是以逗号开头。我可以将逗号移到末尾,但是如果它不是我计算中的最后一个数字,那么在最后一个数字之后我会遇到同样的问题。有谁知道如何调整这个,所以逗号只出现在数字之间?如果我也能在最后一个数字之后得到一个句号,那就太好了。

//备件计算

If (${1} = "Spare" 并且 panelSize ≥ 1 ; "1" ; "" ) &

if ( ${2} = "Spare" 并且 panelSize ≥ 2 ; ", 2" ; "" ) &

if ( ${3} = "Spare" 并且 panelSize ≥ 3 ; ", 3" ; "" ) &

if ( ${4} = "Spare" 并且 panelSize ≥ 4 ; ", 4" ; "" ) &

4

2 回答 2

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" ) ;
) ; "¶" ; ", ") & "."
于 2010-12-19T00:30:03.937 回答
0

你可能正在做你正在做的事情,但没有看到更多细节,只需将你的 calc 更改为:

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 函数将结果放入以后可以操作的变量中。

于 2010-12-13T00:17:08.940 回答