【问题标题】:Passing in the database name to an SSRS report at runtime using AngularJS使用 AngularJS 在运行时将数据库名称传递给 SSRS 报告
【发布时间】:2016-11-29 15:53:58
【问题描述】:

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

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

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

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

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

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

我尝试将此动态数据源与数据集一起使用,但由于错误而无法保存数据集: [![在此处输入图片描述][1]][1]

这是因为我需要将数据库参数添加到查询中吗? 如果是这样,有没有办法解决这个问题?喜欢可以添加: 使用 @DatabaseName 到查询的顶部?

更新 我得到了一个基本报告来显示可选数据库。 现在,我只需要将数据库名称作为参数发送到报告字符串中。

【问题讨论】:

    标签: angularjs reporting-services datasource


    【解决方案1】:

    我想通了...以防万一这可以帮助其他人。 在报告中,我创建了一个参数 DatabaseName。 我还添加了一个嵌入式数据源。起初不是动态的,而是硬编码的。 数据集还必须嵌入到报表中并链接到新创建的数据源。 运行查询和成功时。保存报告! (我发现查询必须成功运行才能保存报告。您无法使用动态数据源成功运行查询。)

    保存报告后,现在将数据源更改为动态。打开它并创建一个这样的表达式:

    ="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

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多