我试图获得一个带有子报表的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.,我已经尝试指定报表服务器上可用的每种可能的身份验证方法,包括“安全存储的凭据”、等等。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)。我是否可以通过参数将连接字符串传递给子报表,并让主报表作为订阅执行?如果是这样的话,是怎么做的?
发布于 2013-04-19 23:37:13
与使用连接字符串不同,首选的方法是使用内置操作选项转到子报表。在属性中,转到Action并选择"Go to report“。指定报表后,可以添加要发送的参数列表。您甚至可以使用函数来确定要传递的值。
https://stackoverflow.com/questions/15163959
复制相似问题