我有一个名为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-- &"]"
来创建所需的格式。
所以我需要的是在。& [和]
之间提取部分但我真的不知道如何隔离那部分字符串。
答案 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()或更好的方法来实现此目的,使用可在多个位置重复使用的自定义函数,并减少表达式的长度。