【问题标题】:Binding a datasource to a rdl in report server programmatically - SSRS以编程方式将数据源绑定到报表服务器中的 rdl - SSRS
【发布时间】:2010-03-02 04:57:03
【问题描述】:

我已经完成了一个 asp.net 应用程序来生成特定数据的报告。最初,我创建了本地报告 (.rdlc) 来生成报告。我为每个 rdlc 创建了单独的 .xsd 并设计了报告。我以编程方式构建数据集并将其绑定到 rdlc。我使用以下代码将数据源绑定到报告 -

rptMyReport.LocalReport.ReportPath = Server.MapPath(srdlcName);
rptMyReport.LocalReport.DataSources.Add(rds);

现在我已经将this msdn article 之后的所有 rdlc 转换为 rdl,并且我已将报告发布到报告服务器。

rptMyReport.ServerReport.ReportServerUrl = new System.Uri("http://ReportServer/ReportServer");
rptMyReport.ServerReport.ReportPath = "/ReportFolder/ReportName";

现在如何以编程方式将数据源设置为报告?

【问题讨论】:

    标签: c# asp.net sql-server reporting-services


    【解决方案1】:

    这项工作是不可能的。你应该在你的 rdl 报告中创建你的数据源。您必须编写报告数据收集所需的查询。您可以将此查询用作文本或存储过程。您可以将参数传递给此查询并过滤查询的输出。 您只能像这样将参数传递给 rdl 报告:

    ReportParameter[] Params = new ReportParameter[1];
    Params[0] = "Parameter Value";
    ReportViewerControl.ServerReport.SetParameters(Params);
    

    【讨论】:

      【解决方案2】:

      你想做什么?我相信 .RDL 文件本身中提到了数据源。 例如:当您使用 BIDS 创建报告时,您可以指定数据源。这将添加到 .RDL 文件中。同样的概念在这里也适用。

      【讨论】:

      • 根据用户选择,我从表中过滤数据并将其分配给 rdlc。那么我该如何在 rdl 中做到这一点呢?
      【解决方案3】:

      这并非不可能,但如果这是你想做的,可能需要一点努力。
      您有两种选择:

      1. 如果您在报表服务器上创建共享数据源,则可以使用 RDLObjectModel 手动添加它。从您的报告服务器获取共享数据源名称和 guid,您可以将其添加到您的报告中。

        例子:

        'create the datasource for the report
        Dim dataSrcRFoo = New RdlObjectModel.DataSource
        dataSrcRFoo.Name = "DataSourceName"
        dataSrcRFoo.DataSourceReference = "/path/to/DataSource"
        dataSrcRFoo.IsShared = True
        dataSrcRFoo.SecurityType = 2 ' RdlObjectModel.SecurityTypeEnum.DataBase   
        dataSrcRFoo.DataSourceID = New Guid("shareddatasourceguid")
        
        'add data source to report
        rdlRpt.DataSources.Add(dataSrcRFoo) 
        
      2. 另一种选择是在服务器上使用内置共享(或报告级别)数据源的模板。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多