2012-07-30 108 views
1

我在ssrs报告中有“国家”过滤器下拉列表。这包含所有国家,它是一个多选下拉列表。如果用户选择“全部”,那么报告会将所有国家/地区名称逗号分隔到存储过程,以便查询显示数据。在存储过程中,我分割值并比较数据。目前没有问题。现在我想要的是,如果用户选择“全部”,我不需要将所有逗号分隔值传递给SP,而是传递null。所以在我看来,我不必拆分或加入表格。问题是确定用户是否选择了报告标准中的“全部”复选框。是否有方法可以找到是否选择“全部”?SSRS过滤器参数

该国是动态的,所以我没有一个查找值来计算所有国家。 参数!Country.Count == 10 - 我不能这样做,因为我不知道10.

回答

0

您可以创建一个单独的数据集,您可以在其中统计数量国家。

Select count(countryName) as cntCountry from yourTable 

现在可以将这个领域cntCountry比较参数Country.Count

Fields!cntCountry.Value==Parameters!Country.Count 

,或者您可以使用CountRows功能,其中在传递数据集中

Parameters!Country.Count=CountRows(dataset1) 

编辑:如果上面一个不起作用

Parameters!Country.Count=CountRows() 

为什么不在数据集中创建一个将存储行数的字段。创建数据集时只需在sql查询中获得row_number,然后将此值与此值匹配Parameters!Country.Count

+0

感谢Praveen,不幸的是CountRows( dataset1)不起作用:错误消息是:@Country包含聚合或查找功能。查询参数中不能使用聚合和查找功能。这里的整点是调整表现。正如你所说,我可以从数据库中得到国家的数据,但是,对于少量的数据来说这是好的。但是我可能有一些其他数据集会有更多的行。请问有没有其他方法可以做到这一点? – pili 2012-07-31 16:45:19

+0

@pili:查看我更新的答案! – praveen 2012-08-01 04:12:59