2013-08-05 3 views
0

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

+0

Вы можете связать без набора данных, но вы не сможете t o разработать отчет с помощью визуального инструмента, потому что Reportviewer не имел бы представления о полях – meda

+0

@meda: Как я могу это сделать? Я новичок в rdlc. Пожалуйста, вы можете предоставить мне ссылку – Ankur

+0

см. Мой ответ, дайте мне знать, если вам нужно больше информации – meda

ответ

4

Ваш ReportViewer на ASPX

<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True"> 
</rsweb:ReportViewer> 

метод, чтобы получить набор данных

private DataTable GetSPResult() 
{ 
    DataTable ResultsTable = new DataTable(); 

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString); 

    try 
    { 
     SqlCommand cmd = new SqlCommand("yourStorePorcedure", conn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@id", 1); 
     SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
     adapter.Fill(ResultsTable); 
    } 

    catch (Exception ex) 
    { 
     Response.Write(ex.ToString()); 
    } 
    finally 
    { 
     if (conn != null) 
     { 
      conn.Close(); 
     } 
    } 

    return ResultsTable; 
} 

результат Bind к ReportViewer

DataTable dt = GetSPResult(); 
ReportViewer1.Visible = true; 
ReportViewer1.LocalReport.ReportPath = "Report1.rdlc"; 
ReportViewer1.LocalReport.DataSources.Clear(); 
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt)); 

Добавить DataSet в проект, а затем добавить tableadapter to:

enter image description here

Пройдите мастер и создать объект с использованием процедуры сохранения

Затем Убедитесь, что файл DataSet добавляется в RDLC

enter image description here

Теперь вам необходимо разработать , и добавьте поля или он будет пустым

+0

Мой отчет не получает связывание. Datset1 следует изменить на что-то .. ??? отчет пуст. – Ankur

+0

@Ankur Я добавил дополнительную информацию – meda

+0

, какие поля мне нужно добавить. Тот, который я беру в своем datatable. – Ankur

4

Да, мы можем использовать управляемый datatable как источник данных для report.but, имя поля должно быть таким же.

DataTable dtReportData="yourdata source" 

YourReportViewer.LocalReport.DataSources.Clear(); 
ReportDataSource RDS1 = new ReportDataSource("SampleReport", dtReportData); 
YourReportViewer.ProcessingMode = ProcessingMode.Local; 
YourReportViewer.LocalReport.EnableExternalImages = true; 
YourReportViewer.LocalReport.ReportEmbeddedResource = "Your Report Path"; 
YourReportViewer.LocalReport.DataSources.Add(RDS1); 
+0

Я получил следующую ошибку: Ошибка при обработке локального отчета. Определение отчета для отчета '/ TEST' не указано. Объектная ссылка не установлена ​​в экземпляр объекта. – Ankur

+0

Как должен быть мой проект отчета? Согласно таблице, которую я собираюсь связать, потому что здесь у нас нет файла .xsd. – Ankur

Смежные вопросы