具有动态报告参数值的SQL报告服务订阅

时间:2014-11-26 02:24:16

标签: sql-server reporting-services crystal-reports report

背景

我有一个包含3个参数的报告:AccountId,FromDate和ToDate。报告是发票布局。客户希望查看所有会员,这意味着我们有300名会员,系统将以pdf或excel格式生成300份报告并发送给客户。

问题

如何在订阅中为此设置成员ID?我不能一个接一个地手动创建300个订阅:|

如果您不清楚,请在下方发表评论,我会尽快纠正。

更新

Manoj处理的数据驱动订阅是必需的SQL Report有Enterprise或Developer editon。 如果我没有,你有解决办法吗?

2 个答案:

答案 0 :(得分:1)

使用此链接作为参考:

http://beyondrelational.com/modules/2/blogs/101/posts/13460/ssrs-60-steps-to-implement-a-data-driven-subscription.aspx

像这样创建你的SQL语句: enter image description here

这将解决您的问题。

答案 1 :(得分:1)

如果您坚持使用标准版的SQL Server,则需要创建一个SSIS包来生成报告。我使用下面的文章设置了一个包,现在可以创建并通过电子邮件发送我们的发票,订单确认和发货确认。我喜欢这篇文章而不是我发现的其他文章,因为随着时间的推移,添加更多报告非常容易,而不必每次都创建新的包。

如果您计划将此参数用于多个报告,我会将参数更改为PK,这样您就知道无论您拨打哪个报告,您都会传递一个整数。我做的另一个改变是为报告生成部分创建一个表,为电子邮件部分创建一个表。在我的情况下,我只想发送一封可能有多个附件的电子邮件,这是最好的方法。在构建此数据的存储过程中,请确保检查电子邮件是否有效。

update TABLE
set SendStatus = 'Invalid Email Address'
where email NOT LIKE '%_@__%.__%' --valid email format
or patindex ('%[ &'',":;!=\/()<>]%', email) > 0  -- Invalid characters
or patindex ('[@.-_]%', email) > 0   -- Valid but cannot be starting character
or patindex ('%[@.-_]', email) > 0   -- Valid but cannot be ending character
or email not like '%@%.%'   -- Must contain at least one @ and one .
or email like '%..%'        -- Cannot have two periods in a row
or email like '%@%@%'       -- Cannot have two @ anywhere
or email like '%.@%' or email like '%@.%' -- Cant have @ and . next to each other
--0

当我进行此设置时,我遇到了很多问题,无法使用默认凭据。 SSRS服务每次都会崩溃,但其余的SQL服务都会继续运行。我最终让我们的网络人员为此设置了一个带静态密码的新设置。如果这样做,请将默认凭据行更改为此凭证行。

rs.Credentials = new System.Net.NetworkCredential("acct", "p@ssword", "domain");

如果您遇到错误或问题,SSRS日志和Google就是您最好的朋友。或者在下面发表评论,我会帮忙。

这篇文章:http://technet.microsoft.com/en-us/library/ff793463(v=sql.105).aspx