2015-06-22 116 views
0

的一部分,我有一個參數調用分析師組的格式如下: [Dimension].[Analyst Group].&[Nl.Workplace.Foundation]SSRS - 如何得到一個字符串

我想這個參數傳遞給另一個報告,過濾數據。它是一個多值參數。但其他報告只接受其格式爲:[KanBan].[Analyst Group].&[Nl.Workplace.Foundation]

所以我嘗試隔離「Nl.Workplace.Foundation」,所以我可以做以下的事情轉到報表參數表達式:="[KanBan].[Analyst Group].&["& --Isolated analyst group-- &"]"以創建所需格式。

所以我需要的是提取之間的部分。 & [and]

但我真的不知道如何隔離字符串的那部分。

+0

是否有這種格式的所有值?有空字符串嗎? –

回答

0

找到解決方案!如果我只使用Parameter.label而不是Parameter.value,它會自動執行我想要的操作!

0

已找到一種不同的解決方案,但我仍將回答最初的問題。它可以幫助。

所以我需要的是提取之間的部分。 & [and]

您可以使用正則表達式。 這可能不是最快的方法,但它可以處理大多數情況。

因此,讓我們假設你有一個包含字符串:

[Dimension].[Analyst Group].&[Nl.Workplace.Foundation] 

你想要得到以下字符串:

Nl.Workplace.Foundation 

只需使用下面的表達式:

=System.Text.RegularExpressions.Regex.Match("[Dimension].[Analyst Group].&[Nl.Workplace.Foundation]", "\.&\[(?<NWF>[^]]+)\]").Groups("NWF").Value 

在表達式中,用您的動態值替換輸入字符串,例如:

=System.Text.RegularExpressions.Regex.Match(Fields!Dimension.Value & "." & Fields!AnalystGroup.Value, "\.&\[(?<NWF>[^]]+)\]").Groups("NWF").Value 

我保持公式儘可能的簡單,讓您可以輕鬆地適應它,用,比如,處理其中輸入字符串將不匹配的情況下(與上面的查詢將返回#Error) 。

你可以通過添加一個IIF()或更好的方法來實現這一點,使用一個自定義函數,你可以在幾個地方重複使用,並減少表達式的長度。