1

我正在编写一个类似于 Microsoft 的Report Builder但要托管在现有 Web 应用程序上的报表生成器程序。它应该能够:

  • 连接到报表服务器(SSRS2008)和预配置的共享数据源;
  • 让用户设计 RDLC;和,
  • 无需 Visual Studio 即可动态生成报告。

基本上,它是一个独立的尽管是专有的报告生成工具。

用户不必是报告编写者,但他们是否了解数据库中数据的关联方式。(表之间存在现有关系。)出于某种原因,他们不能或不应访问 SSRS 站点以从那里构建报告(即使用 Microsoft 的 Report Builder 工具)。他们必须使用我正在创建的工具。

我已经完成了最后两颗子弹。第一个是给我的问题:我对此比较陌生,可能这不是微不足道的。如何在运行时连接到 SSRS2008 数据源?

在我的web.config中,我向 connectionStrings 添加了一个条目,如下所示:

<add name="ReportingSDS" connectionString="Server=http://myReportingServer;datasource=http://myReportingServer/reportserver/models/myReportModel.smdl;Integrated Security=True"/>

这是基于规定的格式

在此之后我遇到了一堵砖墙:

using (var conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["ReportingSDS"].ConnectionString))
{
     conn.Open();
     // what's next?
}

我得到的错误是:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

我的目标是检索它DataSet并将其插入此代码段:

using (var memRDLC = new MemoryStream(Encoding.ASCII.GetBytes(myRdlcXml)))
{
    // Bind the rdl memory stream and data set to reportviewer
    rptViewer.ProcessingMode = ProcessingMode.Local;

    LocalReport r = rptViewer.LocalReport;
    r.LoadReportDefinition(memRDLC);
    foreach (DataTable dataTable in reportEngine.DataTables)
    {
        r.DataSources.Add(new ReportDataSource(
            dataTable.TableName + "_Table", dataTable));
    }
    r.Refresh();
}
4

0 回答 0