我的 SSRS 报告中有一个多值参数。我想知道是否在该参数中选中了(全选)。
换句话说,是检查参数中的所有值还是仅检查部分值。
可能吗?
我可以通过参数找出所选值的数量!参数.Count。有没有办法找出该参数中的项目总数?
我的 SSRS 报告中有一个多值参数。我想知道是否在该参数中选中了(全选)。
换句话说,是检查参数中的所有值还是仅检查部分值。
可能吗?
我可以通过参数找出所选值的数量!参数.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”的多值参数。然后我添加了一个参数“CarrierHidden”,它与“Carrier”相同,唯一的事情是我将它的可见性设置为隐藏。
="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
。这样,您也可以在另一个数据集中使用它,前提是该数据集在第一个数据集填充之后。
根据微软的SSRS帮助搜索:
=Parameters!<ParameterName>.Count
返回整数值 1。对于单值参数,计数始终为 1。
我验证这确实有效,检查内置参数计数字段返回的整数。
允许参数选择有多个值。检查上述字段的值将让您知道用户实际选择了多少值。
在我的情况下,我允许公司编号有多个值。这使用户能够选择一家公司进行报告,或者一次选择几家公司。根据客户请求,如果他们选择多个,则水平显示数据。如果在参数列表中只选择了一个公司,则垂直显示数据并隐藏另一个 tablix。
所以我的可见性显示或隐藏表达式在一个 tablix 中看起来像这样:
=IIF(Parameters!company_number.Count > 1, True, False)
和另一个一样:
=IIF(Parameters!company_number.Count = 1,True,False)