Reporting services 如何在SSRS报告字段中计算和显示日期范围?
在我正在处理的报告中,用户输入开始日期和结束日期。通常,这两个日期将跨越两周,例如,如果他们输入2016年5月15日作为开始日期,输入2016年5月28日作为结束日期 我需要在列标题中显示的是一列的第一周(在上面的例子中是5/15-5/21/16),以及另一列的第二周(在这个例子中是5/22-5/28/16)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,我需要在这两个列标题的文本框表达式属性中执行什么操作?向数据集中添加一个包含一周中第一
要实现这一点,假设参数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
例如:
如果有帮助,请告诉我。谢谢,但我不想更改存储过程;我想在报告中为文本框编写一个表达式。