我正在尝试使用子报表获取SSRS报告作为订阅,但是失败了。手动执行时,报告工作正常。我想要做的事情对于订阅来说可能过于复杂,但这是一般性的想法:
我的主要报告中有一个非常简单的查询,它构建了一个数据库列表。比方说,我总共有10个数据库。我的主报告查询所有10个数据库并返回每个数据库的实际数据库名称。然后,主报表将每个数据库名称作为参数传递给我的子报表。
子报表通过以下内容在其连接字符串中使用每个数据库名称:="Data Source=sql-server-name;" & "Initial Catalog=" & Parameters!ParentID.Value
我遇到的问题有两个:
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集成安全性等。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)
。为了解决这个问题,我最近尝试创建了一个无人值守的执行帐户"遵循建议here,但无法证明它是否有效,因为目前我无法修改我的订阅以安排测试(由于问题#1)。我可以通过参数将连接字符串传递给子报表,并将主报表作为订阅执行吗?如果是这样,怎么样?
答案 0 :(得分:0)
首选方法是使用内置的Action选项转到子报表,而不是使用连接字符串。在属性中,转到“操作”并选择“转到报告”。指定报告后,可以添加要发送的参数列表。您甚至可以使用函数来确定要传递的值。