Привязка источника данных к rdl на сервере отчетов программно - SSRS - PullRequest
2 голосов
/ 02 марта 2010

Я создал приложение asp.net для создания отчетов по определенным данным. Первоначально я создал локальные отчеты (.rdlc) для генерации отчетов. Я создал отдельный .xsd для каждого rdlc и разработал отчеты. Я строю набор данных программно и привязываю его к rdlc. Я использовал следующий код для привязки источника данных к отчетам -

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

Теперь я преобразовал все rdlc в rdl после этой статьи msdn и опубликовал отчеты на сервере отчетов.

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

Теперь, как я могу программно установить источник данных для отчетов?

Ответы [ 3 ]

3 голосов
/ 02 марта 2010

Эта работа невозможна. Вы должны создать свой источник данных в своем отчете rdl. Вы должны написать необходимые запросы для сбора данных отчета. Вы можете использовать этот запрос как текстовую или хранимую процедуру. Вы можете передать параметры этому запросу и отфильтровать выходные данные запроса. Вы можете только передать параметры в отчет rdl следующим образом:

ReportParameter[] Params = new ReportParameter[1];
Params[0] = "Parameter Value";
ReportViewerControl.ServerReport.SetParameters(Params);
0 голосов
/ 11 июля 2013

Это не невозможно, но может потребовать немного усилий, если это то, что вы хотите сделать.
У вас есть несколько вариантов:

  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. Другим вариантом является использование шаблонов на сервере со встроенным источником данных общего ресурса (или уровня отчета).

0 голосов
/ 02 марта 2010

Что вы пытаетесь сделать? Я считаю, что источник данных упоминается в самом файле .RDL. Например: при создании отчета с использованием BIDS вы можете указать источник данных. Это будет добавлено в файл .RDL. Та же самая концепция сохраняется и здесь.

...