在我正在处理的报告中,用户输入开始日期和结束日期。通常情况下,两者将持续两周,例如,如果他们在开始日期进入2016年5月15日,在结束日期进入2016年5月28日。
我需要在列标题中显示的是第一周超过一列(在上面的情况下,将是5/15 - 5/21/16),第二周超过另一列(这将在此case 5/22 - 5/28/16)。
要实现此目的,假设参数BegDate包含5/15/2016且参数EndDate包含5/28/2106,我需要在这两个列标题的Textbox Expression属性中执行什么操作?
答案 0 :(得分:1)
向包含一周第一天的数据集添加新列。您可以在SQL中执行此操作:
DATEADD(DAY, 1-DATEPART(WEEKDAY, @d), @d)
您也可以将其作为数据集中的计算字段。
现在您只需在文本框中引用此字段即可。它甚至可以根据您的需要进行列分组。
答案 1 :(得分:1)
尝试:
第一周:
=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
示例:
如果有帮助,请告诉我。