首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AngularJS在运行时将数据库名称传递给SSRS报表

使用AngularJS在运行时将数据库名称传递给SSRS报表
EN

Stack Overflow用户
提问于 2016-11-29 15:53:58
回答 1查看 440关注 0票数 0

我有一个角度应用程序,它连接到报表服务器来查看SSRS报表。应用程序使用存储在数据库中的文件路径来标识报表。这是文件路径的一个示例:

http://<serverName>/Reports/Pages/Report.aspx?ItemPath=%2fReportFolder%2fPatientReport

我需要添加第二个数据源,以便该报告可以连接到不同的数据库。目前,该报告被硬编码为1个数据库.但是我读到我可以创建第二个数据源并动态链接到另一个数据库。

是否可以在此文件路径中传递数据库的名称,然后使用此数据库名称来选择正确的数据源?

UPDATE我找到了参数化数据库名称的说明。我在服务器上创建了一个所有数据库都存储的数据库,它有一个包含数据库名称的表。我创建了一个数据源来检索这些名称,并创建了一个参数“DatabaseName”,它将是来自用户的输入(希望我能够将这个名称作为参数添加到文件路径字符串中,这样用户就不必选择它)。因此,在报告中,我有一个数据源,它返回一个数据库列表和一个动态数据源,该数据源在连接字符串中使用这个表达式添加数据库名称:

但是,我必须将这个数据源连接到数据集。当我运行它时,="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value

我尝试在数据集中使用这个动态数据源,但由于错误,无法保存数据集:

这是因为我需要将Database参数添加到查询中吗?如果是的话,有什么办法可以绕过这个问题吗?比如能够添加:将@DatabaseName添加到查询的顶部?

UPDATE I有一个可选数据库显示的基本报告。现在,我只需将数据库名作为参数发送到报表字符串中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 22:02:05

我想这个out...in的案子可以帮到别人。在报告中,我创建了一个参数DatabaseName。我还添加了一个嵌入式数据源。一开始不是动态的而是硬编码的。数据集还必须嵌入到报表中,并链接到新创建的数据源。运行查询并在成功时运行。保存报告!(我发现,为了保存报表,查询必须成功运行。您无法使用动态数据源成功地运行查询。)

一旦保存了报表,现在将数据源更改为dynamic。打开它并创建如下表达式:

代码语言:javascript
运行
复制
="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value

现在,保存并关闭报告。您不能再从服务器上运行它了,因为它没有数据源。

我使用一个以DatabaseName为参数的URL从我的应用程序中运行它:

http://serverName/ReportServer?%2fInitialFolderName%2fReportFolderName%2fReportName&rs:Command=Render&DatabaseName=Wrh1

在上面的示例中,参数DatabaseName设置为Wrh1文件夹路径为InitialFolderName/ReportFolderName/ReportName

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40870150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档