今天,我对SSRS中的图表有一个问题,如下所示,我想在图表上生成筛选器,因此我在数据集查询中添加了一个参数(@SaleYearParameter)。
SELECT COUNT(*) AS SaleCount, pc.Name, YEAR(so.ModifiedDate) AS SaleYear
FROM Sales.SalesOrderDetail AS so INNER JOIN
Production.Product AS po ON so.ProductID = po.ProductID INNER JOIN
Production.ProductSubcategory AS ps ON po.ProductSubcategoryID = ps.ProductSubcategoryID INNER JOIN
Production.ProductCategory AS pc ON ps.ProductCategoryID = pc.ProductCategoryID
WHERE (YEAR(so.ModifiedDate) = @SaleYearParameter)
GROUP BY pc.Name, YEAR(so.ModifiedDate)然后我将不同的值绑定到参数上,但过滤器在设计部分显示,但在预览选项卡中不可见。
设计:

预览:

根据上面设计选项卡,可以根据参数进行过滤,但是为什么预览没有过滤器,我尝试了不同的期望,但相同的查询没有图表过滤器和参数。
有人能对此有什么建议吗?提前感谢!
发布于 2016-08-16 21:47:35
我不能给你一个屏幕截图的例子,但我猜要么是缓存结果,因为ssrs做了那样愚蠢的事情,要么是参数没有被正确定义。
我在你的查询中注意到的另一件事。
SELECT COUNT(*) AS SaleCount, pc.Name, YEAR(so.ModifiedDate) AS SaleYear
FROM Sales.SalesOrderDetail AS so INNER JOIN
Production.Product AS po ON so.ProductID = po.ProductID INNER JOIN
Production.ProductSubcategory AS ps ON po.ProductSubcategoryID = ps.ProductSubcategoryID INNER JOIN
Production.ProductCategory AS pc ON ps.ProductCategoryID = pc.ProductCategoryID
WHERE (YEAR(so.ModifiedDate) = @SaleYearParameter)
GROUP BY pc.Name, YEAR(so.ModifiedDate)也许可以尝试下面的方法,因为这是我经常使用的,而且它还没有给我带来任何麻烦。
SELECT COUNT(*) AS SaleCount, pc.Name, YEAR(so.ModifiedDate) AS SaleYear
FROM Sales.SalesOrderDetail AS so INNER JOIN
Production.Product AS po ON so.ProductID = po.ProductID INNER JOIN
Production.ProductSubcategory AS ps ON po.ProductSubcategoryID = ps.ProductSubcategoryID INNER JOIN
Production.ProductCategory AS pc ON ps.ProductCategoryID = pc.ProductCategoryID
WHERE DatePart(YEAR,so.ModifiedDate) in (@SaleYearParameter)
GROUP BY pc.Name, DatePart(YEAR,so.ModifiedDate)最重要的是,在左侧的parameters下,只需检查您的参数是否已定义且尚未获得默认值
发布于 2016-08-17 01:59:01
确保您的报告参数可见。
发布于 2016-08-17 02:09:31
我见过一些有这个问题的人,这似乎是SSRS中的一个(叹息)新bug。
请尝试重新启动Visual Studio并重新打开您的报表。
https://stackoverflow.com/questions/38976514
复制相似问题