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