2

我有一个包含参数StartDateEndDate的报告。从下拉列表中选择时,我希望EndDate参数的时间部分默认为一天结束。

例如,如果用户从下拉列表中选择5/15/2008,则框中显示的值应该是“ 5/15/2008 23:59:59 ”而不是“ 5/15/2008 12:00:00

在 .Net 中使用事件模型和一行代码很容易做到这一点,但在 Report Builder 2.0 中,我需要做什么?

是否有我需要为此编写的代码,或者我是否错过了一些可以处理这个问题的时髦表达式?

谢谢。

关于开发

4

4 回答 4

4

我建议在报告参数部分设置默认参数。您可以从报告 > 报告参数中获得此信息。

这允许您设置非查询默认值。在那里你可以输入一个表达式

=DateAdd(Microsoft.VisualBasic.DateInterval.Second,-1,dateadd("d",1,Today))

这应该为您在今天结束时提供默认值。

编辑:真的只对单个默认值有用。

于 2009-07-14T04:59:38.457 回答
2

自从我使用 SSRS 以来已经有一段时间了,所以请耐心等待。你必须做一些翻译,但这是我过去所做的。

定义 EndDate 参数时,在参数列表中的 EndDate 之后创建一个名为 EndDateEOD 的附加参数。将此参数设为隐藏值,并将其设置为一天中的最后一刻,类似于 Jeremy 计算它的方式。

然后,您可以在您现在拥有@EndDate 的报告查询中使用@EndDateEOD。

选择 StartDate 时,您可以将 EndDate 默认设置为其值,以便 EndDateEOD 将自动设置为开始日期的结束。

于 2009-07-07T19:25:02.337 回答
1

DATEADD()在数据集中的表达式中使用参数。

而不是

...WHERE end_date = @end_date

做这样的事情:

...WHERE end_date = DATEADD(ms, -3, @end_date + 1)

这将向前一天(+1),然后向后 3 毫秒,到日期时间可记录的一天中的最后一刻。

于 2009-07-07T19:16:22.463 回答
0

您可以这样做: =CDate(Parameters!StartDate.Value + " 23:59:59") Parameters!StartDate.Value 的部分可以是任何日期,但不是 EndDate.Value 本身。例如: - Today() - 从开始日期开始的一个月的最后一天: =CDate(DateSerial(Year(Parameters!StartDate.Value), Month(Parameters!StartDate.Value) + 1, 0)+" 23:59:59 ")

希望这有帮助。

于 2013-04-08T00:58:51.440 回答