在 SSRS 日期类型参数上禁用 "Weekend"

Disable the "Weekend" on SSRS Date Type Parameter

我有一份报告,该报告有参数 (@date) 供用户选择日期。

目前,我的参数 (@date) 使用 Parameter Properties > Default Values > =Today()(将今天日期设置为默认参数)。

但我也希望参数可以禁用周末。 所以用户只能select工作日。

我该怎么做?请帮忙。

如果您不介意失去日期选择器的功能,您可以设置 @date 参数以使用以下查询,目前设置为从当前日期算起 +/- 60 天,您可以对其进行修改以适应您的要求:

;with dates ([startDate]) as (
Select convert(date,DateAdd("d",-60,(getdate()))) as [startDate] 
union all 
Select dateadd(day, 1, [startDate])
from dates
where [startDate] <= DateAdd("d",60,(getdate())))
select [startDate]
from dates
where datepart(dw,[startDate]) in (2,3,4,5,6)   
option (maxrecursion 32767)

您不能在日期选择器上禁用周末。如果用户 select 是周末约会,则不会导致错误。我可以建议根据 select 的日期使用可见性来隐藏你的 tables/matrices 吗?

在您的 table(s) 属性中,转到 table 可见性选项并使用此表达式:

=IIF(weekday(Parameters!YourParameterName.Value) = 1, TRUE,IIF(weekday(Parameters!YourParameterName.Value) = 7, TRUE, FALSE))

在您的 table(s) 之后添加一个文本框,在文本框中包含一个 "error message",以便在 select 周末约会时向用户显示。转到文本框 属性、可见性选项并使用此表达式:

=IIF(weekday(Parameters!YourParameterName.Value) = 1, FALSE, IIF(weekday(Parameters!YourParameterName.Value) = 7, FALSE, TRUE))

我在这里使用了嵌套的 IIF 函数,但如果需要,您可以使用 SWITCH。

结果是 selected 周末约会时,您的文本框将与您的消息一起显示。否则你的 table(s) 将会显示。