Как динамически загрузить отчет 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, где настройки источников данных устанавливаются вручную в коде, как показано в примере кода.