我有一份SSRS 2012报告,其中包含要根据用户参数选择显示或隐藏的列。每列都有一个与之关联的可见性表达式。例如,显示或隐藏“现金流量”列的表达式为:
=IIF(InStr(JOIN(Parameters!IF_Variables.Value,","),"CashFlow")>0,False,True)
问题是我还有一个名为“AnnualCashFlow”的列,带有相应的可见性表达式。如果用户选择它,即使未选择“CashFlow”列,也会显示“CashFlow”列,因为它是较长列名的子字符串。
还有其他几个以这种方式相关的列。如何制定一个只能找到所要求的确切字符串的表达式?
答案 0 :(得分:1)
您可以使用分隔符来帮助解决此问题:
=IIF(InStr("," & JOIN(Parameters!IF_Variables.Value, ",") & ",", ",CashFlow,") >0
,False
,True)
由于这包括支票中的分隔符,因此仅匹配CashFlow
,而不是长字符串的一部分。
假设您有CashFlow
列,参数列表为Col1,Col2,AnnualCashFlow
。在表达式中,我们在调整后的字符串,CashFlow,
中查找,Col1,Col2,AnnualCashFlow,
,但没有匹配,因此隐藏表达式可以根据需要运行。