【问题标题】:Get all dates greater than current date in SSRS获取大于 SSRS 中当前日期的所有日期
【发布时间】:2020-05-29 15:02:19
【问题描述】:

我的报告中有两个参数 - 开始日期和结束日期,它们是日期/时间类型。当我从日历中选择开始日期时,如何自动为结束日期日历显示等于或大于开始日期的日期?我希望用户能够在开始日期之后仅选择结束日期。

【问题讨论】:

  • 不幸的是,如果您为结束日期设置了可用值,那么它将不再是日期选择器。但是,您可以使用依赖于开始日期参数的数据集查询将结束日期的默认值设置为大于开始日期的某一天。
  • 那么,只需在开始日期上加一天?像这样的东西? - dateadd("d", 1, Parameters!BeginDate.Value)
  • 是的.. 使用该表达式作为结束日期的默认值。它应该自动将其设置为比开始日期大 1 天。如果需要,用户仍然可以更改它.. 但是您不能阻止他们选择较小的日期.. 也许您可以在报告中处理一些事情.. 比较日期.. 如果结束日期小于开始日期.. 显示一条消息“请选择有效的结束日期”或类似的内容。
  • 添加上面的表达式有点帮助。我在报告中的何处添加以阻止用户不选择较小的日期?
  • 您无法阻止他们选择较小的日期。创建一个比较这两个参数的数据集..如果结束日期大于开始日期..显示一个消息框,要求他们更明智地选择..但这只能在报告运行后发生..不幸的是。

标签: sql-server reporting-services azure-sqldw azure-sql-reporting


【解决方案1】:

这可能是我对您的问题发表的评论的潜在解决方法。您需要三个日期时间参数:

-#1 开始日期

-#2 结束日期

-#3 EndDate2 - 将此隐藏

StartDate 和 EndDate(#1 和 #2)供用户选择。对于报告,我们将使用 StartDate (#1) 和 EndDate2 (#3) 进行过滤。

您可以随意设置 StartDate/EndDate 的默认值。对于 EndDate2,如果用户选择开始日期之前的日期,则默认传递给报告的结束日期。我们通过使用 IIF 函数调整 EndDate2 参数的默认值来设置此值,以比较用户输入的日期。

将此添加到 EndDate2 参数的默认值:

=IIF(Parameters!EndDate.Value < Parameters!StartDate.Value, Parameters!StartDate.Value, Parameters!EndDate.Value )

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    相关资源
    最近更新 更多