使用 AngularJS 在运行时将数据库名称传递给 SSRS 报告
Passing in the database name to an SSRS report at runtime using AngularJS
我有一个 angular 应用程序连接到报表服务器以查看 SSRS 报表。该应用程序使用存储在数据库中的文件路径来识别报告。这是文件路径的示例:
http://<serverName>/Reports/Pages/Report.aspx?ItemPath=%2fReportFolder%2fPatientReport
我需要添加第二个数据源,以便此报表可以连接到不同的数据库。目前,此报告被硬编码到 1 个数据库。但我读到我可以创建第二个数据源并动态 link 到另一个数据库。
我可以在此文件路径中传递数据库名称,然后将此数据库名称用于 select 正确的数据源吗?
更新
我找到了参数化数据库名称的说明。我在存储所有数据库的服务器上创建了一个数据库,它有 1 个 table 包含数据库名称。我创建了一个数据源来检索这些名称并创建了一个 'DatabaseName' 参数,它将作为用户的输入(希望我能够将这个名称作为参数添加到文件路径字符串中,这样用户就不会必须 select 它。)
所以在报告中我有一个数据源 returns 一个数据库列表和一个在连接字符串中使用此表达式添加数据库名称的动态数据源:
但是,我必须将此数据源连接到数据集。当我运行它时,
="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value
我尝试将此动态数据源与数据集一起使用,但由于错误无法保存数据集:
[![在此处输入图片描述][1]][1]
这是因为我需要在查询中添加数据库参数吗?
如果是这样,有什么办法可以解决这个问题吗?喜欢可以添加:
USE @DatabaseName 到查询的顶部?
更新
我得到了一个基本报告来显示可选数据库。
现在,我只需将数据库名称作为参数发送到报告字符串中。
我想通了...如果这可以帮助其他人。
在报告中,我创建了一个参数 DatabaseName。
我还添加了一个 embedded 数据源。起初不是动态的,而是硬编码的。
数据集还必须嵌入到报告中并链接到新创建的数据源。
运行 查询及成功时。保存报告!
(我发现查询必须成功 运行 才能保存报告。您无法成功 运行 具有动态数据源的查询。)
保存报告后,现在将数据源更改为动态。打开它并创建如下表达式:
="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value
现在,保存并关闭报告。您不能再从服务器 运行 它,因为它没有数据源。
我 运行 从我的应用程序使用 URL 并将数据库名称作为参数:
在上面的示例中,参数 DatabaseName 设置为 Wrh1
文件夹路径为InitialFolderName/ReportFolderName/ReportName
我有一个 angular 应用程序连接到报表服务器以查看 SSRS 报表。该应用程序使用存储在数据库中的文件路径来识别报告。这是文件路径的示例:
http://<serverName>/Reports/Pages/Report.aspx?ItemPath=%2fReportFolder%2fPatientReport
我需要添加第二个数据源,以便此报表可以连接到不同的数据库。目前,此报告被硬编码到 1 个数据库。但我读到我可以创建第二个数据源并动态 link 到另一个数据库。
我可以在此文件路径中传递数据库名称,然后将此数据库名称用于 select 正确的数据源吗?
更新 我找到了参数化数据库名称的说明。我在存储所有数据库的服务器上创建了一个数据库,它有 1 个 table 包含数据库名称。我创建了一个数据源来检索这些名称并创建了一个 'DatabaseName' 参数,它将作为用户的输入(希望我能够将这个名称作为参数添加到文件路径字符串中,这样用户就不会必须 select 它。) 所以在报告中我有一个数据源 returns 一个数据库列表和一个在连接字符串中使用此表达式添加数据库名称的动态数据源:
但是,我必须将此数据源连接到数据集。当我运行它时,
="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value
我尝试将此动态数据源与数据集一起使用,但由于错误无法保存数据集: [![在此处输入图片描述][1]][1]
这是因为我需要在查询中添加数据库参数吗? 如果是这样,有什么办法可以解决这个问题吗?喜欢可以添加: USE @DatabaseName 到查询的顶部?
更新 我得到了一个基本报告来显示可选数据库。 现在,我只需将数据库名称作为参数发送到报告字符串中。
我想通了...如果这可以帮助其他人。 在报告中,我创建了一个参数 DatabaseName。 我还添加了一个 embedded 数据源。起初不是动态的,而是硬编码的。 数据集还必须嵌入到报告中并链接到新创建的数据源。 运行 查询及成功时。保存报告! (我发现查询必须成功 运行 才能保存报告。您无法成功 运行 具有动态数据源的查询。)
保存报告后,现在将数据源更改为动态。打开它并创建如下表达式:
="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value
现在,保存并关闭报告。您不能再从服务器 运行 它,因为它没有数据源。
我 运行 从我的应用程序使用 URL 并将数据库名称作为参数:
在上面的示例中,参数 DatabaseName 设置为 Wrh1 文件夹路径为InitialFolderName/ReportFolderName/ReportName