2010-12-09 43 views
0

我有一個項目列表,如果他們被標記,我需要在報表中顯示這些項目。正如您在下面的代碼中看到的那樣,它只不過是以逗號分隔的數字列表。問題是如果#1不在列表中,那麼列表總是以逗號開頭。我可以將逗號移動到最後,但如果最後一個數字不是我計算中的最後一個數字,我會在最後一個數字後出現同樣的問題。有沒有人有任何想法如何調整,所以逗號只出現在數字之間?如果我可以在最後一個數字之後得到一段時間,那將是非常好的。Filemaker計算在列表中正確顯示逗號

//備件計算值

如果($ {1} = 「備用」 和panelSize≥1; 「1」; 「」)&

如果($ {2} = 「備用」 和panelSize≥2; 「2" 」;「)&

如果($ {3} = 」備用「 和panelSize≥3;」,3" , 「」)&

如果($ {4 } =「備用」和panelSize≥4;「,4」;「」)&

回答

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函數將結果放入一個您稍後可以操作的變量中。

5

對此,您可以使用List函數,因爲它排除了空項目。只需將您的數字和空字符串作爲參數傳遞給List,然後用逗號替換換行符,並在該句子上加上句點。

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

以上結果:

1, 3, 4. 

在你的榜樣,您可以使用Case語句作爲參數列表:

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") ; 
) ; "¶" ; ", ") & "." 
+0

最好的,你只是做了我的天! – Michael 2015-11-25 10:17:53