Reporting services 如何在SSRS报告字段中计算和显示日期范围?

Reporting services 如何在SSRS报告字段中计算和显示日期范围?,reporting-services,parameters,expression,ssrs-expression,Reporting Services,Parameters,Expression,Ssrs Expression,在我正在处理的报告中,用户输入开始日期和结束日期。通常,这两个日期将跨越两周,例如,如果他们输入2016年5月15日作为开始日期,输入2016年5月28日作为结束日期 我需要在列标题中显示的是一列的第一周(在上面的例子中是5/15-5/21/16),以及另一列的第二周(在这个例子中是5/22-5/28/16) 要实现这一点,假设参数BegDate包含5/15/2016,参数EndDate包含5/28/2106,我需要在这两个列标题的文本框表达式属性中执行什么操作?向数据集中添加一个包含一周中第一

在我正在处理的报告中,用户输入开始日期和结束日期。通常,这两个日期将跨越两周,例如,如果他们输入2016年5月15日作为开始日期,输入2016年5月28日作为结束日期

我需要在列标题中显示的是一列的第一周(在上面的例子中是5/15-5/21/16),以及另一列的第二周(在这个例子中是5/22-5/28/16)


要实现这一点,假设参数BegDate包含5/15/2016,参数EndDate包含5/28/2106,我需要在这两个列标题的文本框表达式属性中执行什么操作?

向数据集中添加一个包含一周中第一天的新列。您可以在SQL中这样做:

DATEADD(DAY, 1-DATEPART(WEEKDAY, @d), @d)
您还可以将其作为数据集中的计算字段来执行

现在您只需在文本框中引用此字段。根据需要,它甚至可以是一个列分组。

试试:

第一周:

=Parameters!BegDate.Value & " - " &
DATEADD(DateInterval.Day, 7 - DATEPART(DateInterval.Weekday,Parameters!BegDate.Value), Parameters!BegDate.Value)
第二周:

=DATEADD(DateInterval.Day, -DATEPART(DateInterval.Weekday,Parameters!EndDate.Value)+1, Parameters!EndDate.Value)
& " - " & Parameters!EndDate.Value
例如:


如果有帮助,请告诉我。

谢谢,但我不想更改存储过程;我想在报告中为文本框编写一个表达式。