Мне нужно excecute ReportViewer в локальном режиме обработки с двумя источниками данных, но у меня есть проблема со вторым.ReportViewer с несколькими наборами данных, запущенных в localreport
Я рассматриваю отчет с построителем отчетов 3, и он отлично работает там (оба набора данных заполняют их таблицы уважения).
Но когда я вынести отчет в C#, то второй набор данных пуст, это код:
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = nodoDataSet[0].FirstChild.InnerText.ToString().Replace("@Id", id.ToString());
System.Data.DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = con;
cmd2.CommandType = CommandType.Text;
cmd2.CommandText = nodoDataSet[1].FirstChild.InnerText.ToString().Replace("@Id", id.ToString());
System.Data.DataTable dt2 = new DataTable();
dt2.Load(cmd2.ExecuteReader());
con.Close();
ReportViewer viewer = new ReportViewer();
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.ReportPath = urlReporte;
viewer.LocalReport.DataSources.Add(new ReportDataSource() { Name = "Consulta", Value = dt });
viewer.LocalReport.DataSources.Add(new ReportDataSource() { Name = "Consulta2", Value = dt2 });
viewer.LocalReport.EnableExternalImages = true;
List<ReportParameter>() parametros = new List<ReportParameter>(){
new ReportParameter("Id",id.ToString()),
};
viewer.LocalReport.SetParameters(parametros);
pdf.Add(viewer.LocalReport.Render("PDF"));
Я открываю XML, чтобы прочитать запрос SQL и заменить параметры, выполнить запрос в сервера и загружать DataTable, я делаю это для каждого запроса, обе команды получают данные.
Затем просто добавьте два источника данных в отчет и сделайте их в формате PDF.
Проблема заключается в том, что в коде, вторая таблица остается пустым:
Хорошо: http://i.imgur.com/6wWpVMA.png
Bad: http://i.imgur.com/JJz3K33.png
Таким образом, вопрос, почему?
Спасибо!
Установите точку останова после 'dt2.Load'. Имеет ли dt2 данные? – Pikoh
Здравствуйте, Pikoh, да, dt2 получает 3 записи из базы данных. –