0

我有一个 SSRS 2012 报告,其中包含根据用户参数选择显示或隐藏的列。每列都有一个与之关联的可见性表达式。例如,显示或隐藏“现金流”列的表达式是:

=IIF(InStr(JOIN(Parameters!IF_Variables.Value,","),"CashFlow")>0,False,True)

问题是我还有一个名为“AnnualCashFlow”的列,带有相应的可见性表达式。如果用户选择它,“CashFlow”列也会显示,即使它没有被选择,因为它是较长列名称的子字符串。

还有其他几个以这种方式相关的列。如何制定一个只能找到所请求的确切字符串的表达式?

4

1 回答 1

1

您可以使用分隔符来帮助解决这个问题:

=IIF(InStr("," & JOIN(Parameters!IF_Variables.Value, ",") & ",", ",CashFlow,") >0
  ,False
  ,True)

由于这包括检查中的分隔符,因此CashFlow仅匹配,而不是当它是较长字符串的一部分时。

假设您有该CashFlow列,并且您的参数列表是Col1,Col2,AnnualCashFlow. ,CashFlow,在我们在调整后的字符串中寻找的表达式中,Col1,Col2,AnnualCashFlow,,没有匹配项,因此隐藏表达式按要求工作。

于 2013-09-18T20:30:15.120 回答