我有一个报告,报告有参数(@date(供用户选择日期。
目前,我的参数 (@date( 使用参数属性>默认值>=Today(((用于将今天日期设置为默认参数(。
但我也希望该参数可以禁用周末。 因此,用户只能选择工作日。
我该怎么做?请帮忙。
您无法在日期选择器上禁用周末。如果用户选择周末日期,则不会导致错误。我可以建议使用可见性根据他们选择的日期隐藏您的表/矩阵吗?
在表属性中,转到表可见性选项并使用以下表达式:
=IIF(weekday(Parameters!YourParameterName.Value) = 1, TRUE,IIF(weekday(Parameters!YourParameterName.Value) = 7, TRUE, FALSE))
在表后添加一个文本框,在文本框中包含一条"错误消息",以便在用户选择周末日期时向用户显示。转到文本框属性、可见性选项并使用此表达式:
=IIF(weekday(Parameters!YourParameterName.Value) = 1, FALSE, IIF(weekday(Parameters!YourParameterName.Value) = 7, FALSE, TRUE))
我在这里使用嵌套的 IIF 函数,但如果需要,您可以使用 SWITCH。
结果是,当选择周末日期时,您的文本框将与消息一起显示。否则,将显示您的表格。
如果您不介意丢失日期选择器的功能,则可以将 @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)