我有一些根据某些报表模型开发的即席报表,这些报表模型发布在报表服务器上(我们使用的是SSRS 2008)。一切运行良好。现在,在我们的生产环境中,大约有四十(40)个拥有自己数据库的客户(每个客户都有相同的表结构和其他数据库对象)。现在的挑战是,每当客户使用Windows身份验证登录报表服务器并尝试查看那些报表时,我们只需要从适当的数据库中获取SQL数据即可。
使用报告模型设计报告,每个模型都有一个有效的数据源,该数据源已连接到特定的数据库。我们可以创建40个单独的数据源,每个数据源都将连接到特定的数据库。
我的问题是,有什么方法可以动态地或基于客户名称在运行时更改报表模型数据源名称,以便在执行报表期间,SSRS将从正确的数据库而不是其他任何数据库中获取数据。数据库。
请帮我。
最佳答案
我认为没有一种在执行时指定数据源的方法,因为该数据源是报表定义(.rdl)的一部分,并且它具有一定的安全性,可防止查找和替换类型方法。但是,.NET应用程序中的SSRS服务中提供了一些可用功能(例如,搜索ReportingService2010.cs),这些功能使您可以设置数据源。我知道过去我在一个项目中,我们使用内部创建的.NET应用程序进行部署,该应用程序使用这些调用在发布时设置数据源。这是针对SSRS 2005的。
在另一个项目中,我一直在选择的方法是使用BIDS publish进行发布。我们注意到,如果您已经在具有数据源集的环境中发布了报告,则使用BIDS重新发布到同一位置将保留数据源信息(即使它与开发源不同)。这是使用SSRS 2008R2。
https://stackoverflow.com/questions/2475268/