我有一个包含3个参数的报告:AccountId,FromDate和ToDate。报告是发票布局。客户希望查看所有会员,这意味着我们有300名会员,系统将以pdf或excel格式生成300份报告并发送给客户。
如何在订阅中为此设置成员ID?我不能一个接一个地手动创建300个订阅:|
如果您不清楚,请在下方发表评论,我会尽快纠正。
Manoj处理的数据驱动订阅是必需的SQL Report有Enterprise或Developer editon。 如果我没有,你有解决办法吗?
答案 0 :(得分:1)
使用此链接作为参考:
像这样创建你的SQL语句:
这将解决您的问题。
答案 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