1

我正在尝试获取带有子报告的 SSRS 报告以用作订阅,但失败了。手动执行时,报告工作正常。我正在尝试做的事情对于订阅来说可能太复杂了,但这里是一般的想法:

我的主报告中有一个非常简单的查询,它构建了一个数据库列表。比如说,我总共有 10 个数据库。我的主报告查询所有 10 个数据库并返回每个数据库的实际数据库名称。然后,主报表将每个数据库名称作为参数传递给我的子报表。

子报表通过以下方式在其连接字符串中使用每个数据库名称:="Data Source=sql-server-name;" & "Initial Catalog=" & Parameters!ParentID.Value

我遇到的问题是双重的:

  1. 目前,在为我的主报告创建订阅时收到错误消息。我收到的错误消息是Subscriptions cannot be created because the credentials used to run the report are not stored, or if a linked report, the link is no longer valid.我已经尝试指定报表服务器上可用的每种可能的身份验证方法,包括“安全存储的凭据”、Windows 集成安全性等。
  2. 有一次,我创建了一个订阅,但是当订阅尝试运行并发送电子邮件时,我收到的错误消息是:The current action cannot be completed. The user data source credentials do not meet the requirements to run this report or shared dataset. Either the user data source credentials are not stored in the report server database, or the user data source is configured not to require credentials but the unattended execution account is not specified. (rsInvalidDataSourceCredentialSetting). 为了解决这个问题,我最近尝试按照此处的建议创建一个“无人值守执行帐户” ,但无法证明它是否有效,因为目前我无法修改我的订阅来安排测试(由于问题 #1)。

我可以通过参数将连接字符串传递给子报表并让主报表作为订阅执行吗?如果是这样,怎么做?

4

1 回答 1

0

首选方法是使用内置操作选项转到子报表,而不是使用连接字符串。在属性中,转到操作并选择“转到报告”。指定报告后,您可以添加要发送的参数列表。您甚至可以使用函数来确定要传递的值。

于 2013-04-19T23:37:13.003 回答