所以我要做的是根据输入的开始日期和结束日期在报表生成器中生成日历报表。基于此,我想使用名为“上个月”和“下个月”的日历下方按钮点击,将根据输入的开始和结束日期转到上一个或下个月的日历。我已尝试使用子报告执行此操作(报告使用新参数值调用自身),但在一个按钮单击后退或前进后,它会按年而不是按月开始递减或递增。有没有办法做到这一点?我试图让上个月/下个月的切换工作像Micorsoft Outlook的月视图一样。
提前致谢!
答案 0 :(得分:2)
根据MSDN,你在表达式中使用了不正确的语法,这让我想知道它是如何工作的。
你的DateAdd应该使用DateInterval枚举,我不确定为什么你甚至需要使用DateSerial,但是它的硬编码参数应该是双引号。
我觉得这个表达式应该适用于你需要的东西:
=dateadd(DateInterval.Month,-1,Parameters!start_cymd.Value)
但根据您的评论,这是假设用户只能选择一个月的数据,因此start_cymd参数将始终是该月的第一个。
获取结束日期比较棘手,因为不同的月份有不同的结束日期。以下是来自同一MSDN页面的示例:
=DateSerial(Year(Parameters!start_cymd.Value), Month(Parameters!start_cymd.Value), "1").AddDays(-1)
这些应该是上个月的开始和结束日期。反转数学/逻辑以获得下个月。