Как динамически загрузить отчет SSRS в средство просмотра отчетов и включить источники данных / наборы данных?

Вот сценарий: у меня есть много разных файлов отчетов (*.rdl), и пользователь может выбрать один из веб-интерфейса. Это, в свою очередь, загружает элемент управления Report Viewer (как элемент управления ASPX).

Мои файлы *.rdl содержат в своем описании как источники данных, так и наборы данных (я просто проверил XML в блокноте). Источником данных является хранимая процедура Oracle. Отчет запускается нормально, если я запускаю его в построителе отчетов 3.

Чего я не понимаю, так это как я могу загрузить файл отчета в Средство просмотра отчетов во время выполнения и заставить его автоматически использовать источники данных и наборы данных, определенные в определении отчета.

try
{
    Viewer.LocalReport.ReportPath = myLocalRDLPath; // Exists and is readable
    var reader = new StringReader(File.ReadAllText(myLocalRDLPath));
    Viewer.LocalReport.LoadReportDefinition(reader);
}
catch(Exception ex)
{
    throw new Exception("Unable to open report definition file from server.", ex);
}

if (Viewer.LocalReport.DataSources.Count > 0)
{
    // Never hits, DataSources is always empty, but
    // a Data Source and a Dataset exist in the .rdl file.
}

1 ответ

Если вы используете файлы.RDL, вам нужно использовать Viewer.ServerReport, Он будет использовать источники данных в определении отчета, и нет необходимости явно устанавливать источники данных.

Viewer.LocalReport предназначен для файлов.RDLC, где настройки источников данных устанавливаются вручную в коде, как показано в примере кода.

Другие вопросы по тегам