0

我对Reporting Services中的参数值有疑问。我有两个参数:参数值Reporting Services

@OrdersMonth 
@OrdersPrevMonth 

而且每一个有值:

[Orders].[Month].[January 2014] 

等每个月。 对于第二个参数我有同样的值,但不同的维度:

[Orders].[PrevMonth].[January 2014] 

等每个月。

问题是我的参数@OrdersMonth必须可见并且参数@OrdersPrevMonth必须隐藏,但是当用户选择@OrdersMonth的值时,最后一个值(2014年1月)也必须更新,但当然也可以其维度。

[Orders].[Month].[January 2014]  -> visible 
[Orders].[PrevMonth].[January 2014] -> hidden 

任何想法将不胜感激。谢谢

回答

0

您将需要使@OrdersPrevMonth依赖于@OrdersMonth的基于查询的参数。当您更改@OrdersMonth时,@OrdersPrevMonth的值将被重新提取。

为此,您需要将@ OrdersPrevMonth的选项设置为“从查询中获取数据”。在SP或查询中,您需要引用@OrdersMonth作为参数。

为了测试这一点,你可以创建另一个数据集,并设置查询或存储过程simiuliar到:

CREATE PROCEDURE GetOrdersPrevMonthParameters 
(
    @OrdersMonth NVARCHAR(75) 
) 
AS 

DECLARE @Result NVARCHAR(75) 
SET @Result= 
    CASE 
     WHEN @OrdersMonth='[Orders].[Month].[January 2014]' THEN '[Orders].[PrevMonth].[January 2014]' 
     WHEN @OrdersMonth='[Orders].[Month].[March 2014]' THEN '[Orders].[PrevMonth].[March 2014]' 
     ELSE 
      NULL 
    END 
SELECT @Result 

注意:您可能需要使用DATETIME场,而不是一个长期冗长的CASE语句来制定programtic解决方案为此,但为了简单起见,我正在使用案例。

接下来,使您的@OrderInPrevMonth参数依赖于GetOrdersPrevMonthParameters数据集。 SSRS会自动将此参数标记为@OrdersMonth的casecade,因为它是@OrdersPrevMonth查询的必需参数。

+0

你能给我一个例子,我怎么能用上面的值做我的查询。 – user3449064

+0

用简单的例子编辑 –