Senario 1 :
我用不同的数据给不同的客户发送相同的报告。例如,客户端1想要关于xyz区域的报告,而客户端2需要其他区域的报告。
我已经为报表创建了一次订阅,然后从报表服务器表中选择订阅Id和ScheduleId来手动触发。
我正在从数据库中检索客户定义的电子邮件地址和区域的所有设置。通过光标循环,我正在处理这些细节,并更新[ReportServer].[dbo].[Susbcriptions]中的电子邮件地址和报告参数
然后使用下面的SQL向客户端发送PDF。
exec ReportServer.dbo.AddEvent @EventType='SharedSchedule', @EventData=@ScheduleID
WaitFor Delay 00:00:45 - To allow report processiong to be finished.Problem1:当遍历游标时--有时客户端2永远得不到报告。
Senario2:
例如,我希望向一个客户端发送不同的许可详细信息许可证1、许可证2和许可证3。
使用上述方法,客户端有时获得许可证1详细信息报告2次,然后跳过License2详细信息报告。
希望这能提供更多的信息。我正在使用SQL SERver 2008 Reporting 。
发布于 2014-06-02 12:48:58
SSRS订阅的内部情况有点复杂。(有关更多信息,请参见这个答案:https://stackoverflow.com/a/22163743/201021)。
滚动您自己的解决方案的另一种方法是使用数据驱动的订阅,这是Server 2005和更高版本中SSRS的一个特性。关于如何使用它们,有一篇很好的MSDN文章:创建数据驱动订阅(SSRS教程)
如果这不适用于您,我建议您使用web服务,而不是尝试在SSRS数据库中直接这样做。这将确保SSRS仍然能够准确控制订阅的运行方式。另外,也不能保证报表服务器数据库的结构,而web服务应该保持相对不变。一些很好的资源:
https://stackoverflow.com/questions/23985603
复制相似问题