【问题标题】:Ssrs date/time parameter to default to first date from a datasetSsrs 日期/时间参数默认为数据集中的第一个日期
【发布时间】:2017-09-04 18:40:09
【问题描述】:

我有一个名为“activities”的数据集,它是用 SQL 编写的,在这个数据集中有一个名为“created on”的字段。

执行报告时,它当前具有 date to 和 date from 参数,以便过滤并仅显示基于所选日期的记录。

我需要的是“开始日期”参数,默认为“创建于”日期的第一个活动。

例如报告已执行并有多项活动。

  • 活动 a 创建于 = 01/01/2017,
  • 活动 b 创建于 = 02/01/2017,
  • 活动 c 创建于 = 03/01/2017

结果: 执行报告时的开始日期参数应默认为 01/01/2017。

【问题讨论】:

  • 在报告参数属性中,您可以设置参数的默认值。

标签: sql-server reporting-services ssrs-2008 ssrs-2012 ssrs-tablix


【解决方案1】:

你不能有一个使用和表达式的默认参数。因此,您不能按照您的预期执行此操作 =Min(Fields!MyDateField.Value, "DataSet1")。由于此数据集依赖于参数,因此在执行报表之前不可用。

相反,您需要创建另一个提供默认值的数据集。

  1. 创建一个新数据集(例如dsStartDate
  2. 将数据集查询设置为类似于SELECT MIN(myDateColumn) as StartDate FROM myTable
  3. 在您的参数属性中,转到“默认值”,选择“从查询中获取值”
  4. 选择dsStartDate 作为数据集,选择StartDate 作为值字段。

就是这样。

【讨论】:

  • 谢谢您,该参数现在正在使用与上述类似的查询。但是,该参数现在还显示时间 (DD/MM/YYYY HH:MM),因为这是它在 DB 中的存储方式。有没有办法只显示这个参数的日期?
  • 试试SELECT CAST(Min(myDateColumn) AS DATE) as StartDate FROM myTable。这是未经测试的,但应该没问题。
猜你喜欢
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多