首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订阅具有不同默认参数的报表

订阅具有不同默认参数的报表
EN

Stack Overflow用户
提问于 2017-05-15 19:29:31
回答 1查看 77关注 0票数 0

我已经在VS2013中创建了一个报告。我还创建了一个存储过程,它返回一个数据集,可以计算出Last_week_start、Last_week_finish、Last_month_start、Last_month_finish等。我这样做是为了让用户可以订阅这些报告,并在周报的星期一和月度的1日通过电子邮件发送给他们。是否必须使用不同的默认参数为周报和月报创建单独的报表?ie审核报告(每周)和审核报告(每月)并维护2份报告,或者是否有更动态的方法来完成此操作

EN

回答 1

Stack Overflow用户

发布于 2017-05-15 20:15:04

我处理允许最终用户订阅的报告的方法是,根据订阅是每天、每周还是每月,设置不同的默认日期值。

我添加到报告中的参数是我称之为Period (或report Period)的参数,并且它必须是报告中的第一个参数,或者至少在日期参数之前列出。下拉列表中此参数的唯一值为Daily、Weekly和Monthly (或任何适用的值)。这些可以是你需要的任何东西。在报告的参数中手动输入这些值选项,因为它们不会经常更改。根据最终用户在创建订阅时为此参数选择的内容,默认日期值会发生变化。这是通过date参数的默认值中的表达式来完成的,该表达式计算从Period下拉列表中选择的值。

因此,如果最终用户想要每日订阅,他们从Period参数下拉列表中选择daily,开始和结束日期参数的默认值将更改为仅包括前一天。如果他们选择Weekly,则开始和结束日期参数将更改为仅包括前一周,依此类推。

以下是开始日期参数默认值表达式的示例。

代码语言:javascript
复制
=Switch(Parameters!Period.Value = "Daily" , DateAdd(DateInterval.Day, -1, Today), 
Parameters!Period.Value = "Weekly" , DateAdd(DateInterval.WeekOfYear, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)-1), Today)) , 
Parameters!Period.Value = "Monthly" , DateAdd(DateInterval.Month, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)-1), Today)))

对于结束日期参数…

代码语言:javascript
复制
=Switch(Parameters!Period.Value = "Daily" , Today, 
Parameters!Period.Value = "Weekly" , DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)), Today) , 
Parameters!Period.Value = "Monthly" , DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)), Today))

警告!!无论是在报表设计器(预览)中还是联机更改期间值,都不会导致日期值在您眼前自动更改。然而,在创建(并因此执行)订阅时,它会这样做。我从来没有研究过为什么会这样。

一个报表,基于参数的动态日期范围。

试试看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43978337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档