我可以在运行时更改报表模型的数据源

时间:2010-03-19 06:01:15

标签: model datasource report ssrs-2008

我在报表服务器上发布的一些报表模型上开发了一些特别报告(我们正在使用SSRS 2008)。一切都运行良好。现在,在我们的生产环境中,我们有大约四十(40)个拥有自己的数据库的客户(每个都有相同的表结构和其他数据库对象)。现在的挑战是,只要客户使用Windows身份验证登录报表服务器并尝试查看我们只需从正确的数据库获取SQL数据所需的报表。 报告是使用报告模型设计的,每个模型都有一个连接到特定数据库的有效数据源。我们可以创建四十个单独的数据源,每个数据源将连接到特定的数据库。 我的问题是,有没有办法可以动态地或在运行时根据客户名称更改报表模型数据源名称,以便在执行报表时,SSRS将从正确的数据库中获取数据,但不能从任何其他数据库中获取数据数据库中。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

我认为没有办法在执行时指定数据源,因为数据源是报表定义(.rdl)的一部分,并且它有一些安全性来阻止查找和替换类型方法。但是,在.NET应用程序中,我们为SSRS服务提供了一些可用的功能(例如,搜索ReportingService2010.cs),这些功能允许您设置数据源。我知道我以前参与过一个项目,我们使用内部创建的.NET应用程序进行部署,该应用程序使用这些调用在发布时设置数据源。这是针对SSRS 2005的。

在另一个项目中,我一直在选择的方法是使用BIDS发布进行发布。我们注意到,如果您已在具有数据源集的环境中发布报告,则使用BIDS重新发布到同一位置将保留数据源信息(即使它与您的开发源不同)。这是使用SSRS 2008R2。