Reporting Services列可见性表达式包括子字符串列名称

时间:2013-09-18 19:56:57

标签: reporting-services substring

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

由于这包括支票中的分隔符,因此仅匹配CashFlow,而不是长字符串的一部分。

假设您有CashFlow列,参数列表为Col1,Col2,AnnualCashFlow。在表达式中,我们在调整后的字符串,CashFlow,中查找,Col1,Col2,AnnualCashFlow,,但没有匹配,因此隐藏表达式可以根据需要运行。