SSRS - 如何得到一个字符串

问题描述:

的一部分,我有一个参数调用分析师组的格式如下: [Dimension].[Analyst Group].&[Nl.Workplace.Foundation]SSRS - 如何得到一个字符串

我想这个参数传递给另一个报告,过滤数据。它是一个多值参数。但其他报告只接受其格式为:[KanBan].[Analyst Group].&[Nl.Workplace.Foundation]

所以我尝试隔离“Nl.Workplace.Foundation”,所以我可以做以下的事情转到报表参数表达式:="[KanBan].[Analyst Group].&["& --Isolated analyst group-- &"]"以创建所需格式。

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

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

+0

是否有这种格式的所有值?有空字符串吗? –

找到解决方案!如果我只使用Parameter.label而不是Parameter.value,它会自动执行我想要的操作!

已找到一种不同的解决方案,但我仍将回答最初的问题。它可以帮助。

所以我需要的是提取之间的部分。 & [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()或更好的方法来实现这一点,使用一个自定义函数,你可以在几个地方重复使用,并减少表达式的长度。