SSRS - 如何得到一个字符串
问题描述:
的一部分,我有一个参数调用分析师组的格式如下: [Dimension].[Analyst Group].&[Nl.Workplace.Foundation]
SSRS - 如何得到一个字符串
我想这个参数传递给另一个报告,过滤数据。它是一个多值参数。但其他报告只接受其格式为:[KanBan].[Analyst Group].&[Nl.Workplace.Foundation]
所以我尝试隔离“Nl.Workplace.Foundation”,所以我可以做以下的事情转到报表参数表达式:="[KanBan].[Analyst Group].&["& --Isolated analyst group-- &"]"
以创建所需格式。
所以我需要的是提取之间的部分。 & [and]
但我真的不知道如何隔离字符串的那部分。
答
找到解决方案!如果我只使用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()或更好的方法来实现这一点,使用一个自定义函数,你可以在几个地方重复使用,并减少表达式的长度。
是否有这种格式的所有值?有空字符串吗? –