SSRS:两个级联日期参数不会刷新



我有一个带有三个参数的SSRS 2014报告:@period(text),@fromdate(date)和@todate(date)。他们首先从期间下拉列表(1月,2月,3月等)中选择一个值来共同工作。根据您选择的期间,@fromdate和@todate参数相应地更改以反映您的选择。这效果很好,但是当您选择一个新的时期后,问题出现了,因为日期参数不刷新。

我一直在研究一些建议和解决方法,但是我还没有找到一个涉及两个因日期参数的建议。有任何建议吗?

生成的日期参数无法更改。它没有级联设施,根据微软的说法,它是设计的(这是他们想要它的行为方式):

请按照此链接

如前所述,没有可用值/默认值的参数不会刷新其默认值。

解决方法:创建一个一行数据集,该数据集在单独的列中计算您的日期和数据表,并根据您的@period参数,并将数据集分配给两者的可用 and default值您的参数。缺点:运行报告时您将无法编辑值,因为该字段由数据集填充。

这是按预期工作的,如果您更改了它们的参数,Microsoft不希望级联日期参数刷新。但是可以解决它。

它需要两个数据集,用于两个数据参数,这些数据参数返回一行,其所需数据取决于@period参数,例如

DECLARE @Dates as TABLE ([Period] INT, [Date] SMALLDATETIME) 
INSERT INTO @Dates VALUES
(1,DATEADD(s, 86340, DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0))) ) 
,(2,DATEADD(DAY , 7-DATEPART(WEEKDAY,GETDATE()),DATEADD(MINUTE,- 1,DATEADD(DAY,0,DATEADD(day,DATEDIFF(day,0,GETDATE())+1,0)))) )
,(3,DATEADD(MINUTE,- 1,DATEADD(DAY,0,DATEADD(day,DATEDIFF(day,0,GETDATE()),0)))) 
SELECT 
    [Period]
    ,[Date]
FROM
    @Dates
WHERE 
    [Period] = @Period

设置@period参数的可用值也匹配,并将数据参数的默认值设置为其匹配的数据集。

现在,当您更改@period参数时,它迫使日期数据集重新运行,并且您的日期参数将默认为新结果。

最新更新