我有一份SSRS报告,其中包含典型的开始日期/结束日期参数,这些参数将根据OrderDate字段过滤掉销售订单信息。有了这份报告,我有一个子报告。这个子代码基本上只是按月份的相同信息的聚合。此汇总信息应该是从该月的第一天,一年前的一天到结束日期的参数月的最后一天。这根本不考虑主子报告的Start Date参数。
这是一个有点棘手的地方。例如,假设我在主报表上创建了开始日期/结束日期参数:
10/15/2016 - 11/15/2016
(请记住,为此目的,开始日期无关紧要)
我希望子报表显示2015年12月整个月到2016年11月整个月的每月销售总额,即使我的结束日期是2016年11月15日。
如果我现在要在报告中为我的参数添加相同的日期,对于2015年12月的汇总,我只会从15日到31日获得销售。目前,我的子报表通过以下方式过滤OrderDate:
Fields!OrderDate.Value>= DateAdd(DateInterval.Month, -12,Parameters!EndDate.Value)
我知道这个过滤器当前没有设置为具有参数的结束日期,只是大于参数,这是错误的,因为我希望12个月的历史记录在该月的最后一天停止我的结束日期参数,但我不知道如何实现这一点。
我希望我已经很好地解释了这一点。任何有关这方面的帮助将不胜感激。
答案 0 :(得分:2)
您可以设置过滤器,以仅获取子报表数据集,Tablix和某些可视化中特定范围之间的日期:
在Filter
标签中的DataSet属性或Tablix属性中,使用以下设置:
在“值”文本框中,您应该使用表达式来计算日期范围。
开始日期
=DateSerial(Parameters!EndDate.Value.Year-1,Parameters!EndDate.Value.Month,1).AddMonths(1)
结束日期
=DateSerial(
Parameters!EndDate.Value.Year,Parameters!EndDate.Value.Month,1).AddMonths(1).AddDays(-1)
如果您的12/01/2015
参数设置为11/30/2016
EndDate
过滤到11/15/2016
如果有帮助,请告诉我。