SSRS - 如何获取字符串的一部分

时间:2015-06-22 08:04:39

标签: string reporting-services split between

我有一个名为Analyst group的参数,格式如下:  [Dimension].[Analyst Group].&[Nl.Workplace.Foundation]

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

所以我试图隔离“Nl.Workplace.Foundation”,所以我可以在Go To Report参数表达式中执行以下操作:="[KanBan].[Analyst Group].&["& --Isolated analyst group-- &"]"来创建所需的格式。

所以我需要的是在。& [和]

之间提取部分

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

已找到不同的解决方案,但我仍会回答最初的问题。它可能有所帮助。

  

所以我需要的是在。& [和]

之间提取部分

你可以使用正则表达式。 这可能不是最快的方式,但它可以处理大多数情况。

因此,假设您有一个包含以下内容的字符串:

[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

我保持公式尽可能简单,以便您可以轻松地调整它,例如,处理输入字符串不匹配的情况(使用上面的查询它将返回{{1 }})。

您可以通过添加IIF()或更好的方法来实现此目的,使用可在多个位置重复使用的自定义函数,并减少表达式的长度。