应用案例
企业要求实现通过ReportingService将报表的内容以手机短信的方式发送到订阅者的手机上进行浏览。
其中短信发送功能已经实现(提供了WebService,在这里不做讨论)
因为以短信的方式发送,暂时用ReportingServices的CSV格式采集数据。
一.需求分析
其中短信发送功能已经实现(提供了WebService,在这里不做讨论)
因为以短信的方式发送,暂时用ReportingServices的CSV格式采集数据。
订阅用的参数,在这里主要用到了一个手机号,为了说明简单,这里只让用户输入一个手机号
二.程序设计
namespace Lnnmc.ReportingServices.ShortMessageDeliveryProvider
1.记录用户订阅信息的SubscriptionData类
string Handset{get;} : 用户手机号 (不附合要求,该功能去掉)
string[] Groups{get;} : 当前报表订阅的组名
string[] Users{get;} : 当前订阅的用户名
void FromSettings(Setting[] settings) : 从settings中解释出用户订阅数据
Setting[] ToSettingArray() : 将用户订阅数据生成setting数组
2.实现IExtension, IDeliveryExtension的ShortMessageProvider类
string LocalizedName{get;} : 在RS的传递下拉框中显示的名称
void SetConfiguration(string configuration) : 从rsreportserver.config中得到当前Delivery的配置信息
Setting[] ExtensionSettings : 定义服务器端的默认Setting配置
IDeliveryReportServerInformation ReportServerInformation : 可以得到当前RS服务器上的一些可用的Render类型
bool Deliver(Notification notification) : 这个方法就是用来执行发送的
Setting[] ValidateUserData(Setting[] settings) : 验证用户输入的setting是否有效
3.实现UI接口WebControl, ISubscriptionBaseUIUserControl, IExtension的ShortMessageUIProvider类
string LocalizedName{get;} : 显示在报表传递属性中的传递者下拉框中
void SetConfiguration(string configuration) : 从RSWebApplication.config得到UI的配置信息
string Description{get;} : 订阅后,显示在订阅列表中的"描述"字段里
Setting[] UserData{get;set;} : 这个很关键,是得到UI上的用户配置数据(订阅时),得到原来的用户配置数据(编辑时)。
三.程序开发
SubscriptionData 源代码
ShortMessageProvider源代码
ShortMessageUIProvider源代码
实际开发过程中发现,Excel的一些处理只能在WinForm程序中进行(具体为啥没搞清楚)所以,在处理生成的Excel时,只能单独做了一个WinApp
ReportMmsParser.exe 的源代码
四.程序部署
五.程序测试
本次开发,参考了RS自带的PrinterDelivery例程