根据SSRS

时间:2016-08-11 10:46:00

标签: sql sql-server date reporting-services ssrs-2012

我们的SSRS报告包含Year , Start-Date, End-Date字段(开始日期和结束日期为Date个控件,YearCombo值。我需要根据Year值限制开始日期和结束日期的值。

例如:如果年份值为2016,则开始日期和结束日期值应介于01/01/201612/31/2016之间。

如何在SSRS中执行此操作?请帮忙

2 个答案:

答案 0 :(得分:1)

这可以通过一个缺点来实现。您的日期选择器将不再是日历,它将成为包含日期的下拉列表。

创建一个查询,生成您要查找的日期列表,并将其作为数据集添加到报表中。然后,在“开始日期”和“结束日期”报告参数的属性中,单击默认值窗格。从查询中选择获取值,选择适当的数据集,值字段和标签字段。

之后运行报告时,您将看到一个下拉列表,其中包含查询返回的日期列表。只需确保您的日期查询取决于年份报告参数。

答案 1 :(得分:1)

我使用年份值来确定StartDateEndDateYear之间的日期。使用表达式,您可以从StartDate获取年份,并将其与Year值进行比较,根据该比较,您可以设置另一个参数(StartDateHidden),该参数对用户隐藏并填充,具体取决于比较。

StartDateHidden的表达式。

=IIF(
  Paramaters!StartDate.Value.Year = Parameters!Year.Value,
  Paramaters!StartDate.Value,DateSerial(Parameters!Year.Value,1,1)
)

请注意,如果StartDateHidden值为StartDate,则Year值会填充Year,否则会设置StartDate值的第一个日期。

EndDateHidden不在年份值中时,您可以使用任何默认值。

=IIF( Parameters!EndDate.Value.Year = Parameters!Year.Value, Parameters!EndDate.Value,DateSerial(Parameters!Year.Value,12,31) ) 的表达式。

y

如果有帮助,请告诉我。