我在我的SSRS报表中有一个多值参数。我想找出是否选择了(全选)。
换句话说,该参数中的所有值是否都被选中或者只有部分被选中。
这可行吗?
我能够通过 Parameters!Parameter.Count 找出已选择的值的数量。有没有办法找出该参数中的所有项目的总数?
我在我的SSRS报表中有一个多值参数。我想找出是否选择了(全选)。
换句话说,该参数中的所有值是否都被选中或者只有部分被选中。
这可行吗?
我能够通过 Parameters!Parameter.Count 找出已选择的值的数量。有没有办法找出该参数中的所有项目的总数?
如果有人仍然在解决这个问题,我刚刚编写了这个简单的修复程序。
=IIF(COUNTROWS("dataset").Equals(Parameters!parameter.Count),"it is equal","this is not equal")
针对在报表中显示所选筛选器的特定用例,以下是表达式,如果选择了“(全选)”,则会显示“全部”,否则将显示所有选定值作为逗号分隔列表:
=IIF(
Parameters!YourMultivalueParam.Count = countrows("YourDataset"),
"All",
Join(Parameters!YourMultivalueParam.Label,", ")
)
(为了易读性而分成多行)
countrows
参考:https://technet.microsoft.com/en-us/library/dd255215.aspx
感谢其他答案,我只是想在这个常见的情况下扩展它们。
你的方法听起来不错:我建议将参数选项从数据集中获取。
然后,您可以使用=COUNTROWS("DataSetName")
返回参数选项的总数,并像您建议的那样与Parameters!*Parameter*.Count
进行比较。
="Carrier=" & Switch(Parameters!CarrierHidden.Count = Parameters!Carrier.Count, "All",
Parameters!Carrier.Count > 1 And Parameters!CarrierHidden.Count > Parameters!Carrier.Count, "Multi",
Parameters!Carrier.Count = 1, Parameters!Carrier.Label(0))
简单的方法是计算所选参数的数量并将其与数据集进行比较。
=IIF(Parameters!company_number.Count = CountRows("Dataset1"), True, False)
parameter.count = rowscount
。这样,您也可以在另一个数据集中使用它,前提是第一个数据集填充完毕后才能使用。=Parameters!<ParameterName>.Count
返回整数值1。对于单值参数,计数始终为1。
我验证了这确实有效,请检查内置参数计数字段返回的整数。
允许在参数选择上选择多个值。检查上述字段的值将让您知道用户实际选择了多少个值。
在我的情况下,我允许在公司编号上选择多个值。这使用户能够选择一个或多个公司进行报告。根据客户要求,如果他们选择多个公司,则水平显示数据。如果在参数列表中只选择一个公司,则垂直显示数据并隐藏其他表格。
因此,在一个表格中,我的可见性显示或隐藏表达式如下:
=IIF(Parameters!company_number.Count > 1, True, False)
并在另一个中类似于此:
=IIF(Parameters!company_number.Count = 1,True,False)
我使用Count来显示列表中的单个标签或多个选定的参数
=iif(Parameters!parameter_list_name.Count=1,
Parameters!parameter_list_name.Label(0),
Join(Parameters!parameter_list_name.Label,", "))