【问题标题】:SSRS - How to get a part of a stringSSRS - 如何获取字符串的一部分
【发布时间】:2015-06-22 08:04:39
【问题描述】:

我有一个名为 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-- &"]" 以创建所需的格式。

所以我需要提取 .&[ 和 ] 之间的部分

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

【问题讨论】:

  • 所有值都是这种格式吗?有nulls,空字符串吗?

标签: string reporting-services split between


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    所以我需要提取 .&[ 和 ] 之间的部分

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

    所以假设你有一个字符串包含:

    [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() 或更好的方法来做到这一点,使用可以在多个地方重复使用的自定义函数,并且会减少表达式的长度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多