Я использую ReportViewer для создания некоторых отчетов в своем веб-приложении и хочу знать:
Можно использовать ReportViewer без предварительного создания файла .rdlc ... dataSet ...и все такое?
Я хочу создавать экземпляры этих объектов, устанавливать их свойства во время выполнения, чтобы не включать слишком много файлов в мое приложение (30 отчетов x 3 файла [dataSet, .rdlc и .aspx])
Следующий метод объясняет некоторые мои проблемы:
protected void Page_Load (отправитель объекта, EventArgs e) {
//getting the string connection
string connString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
//estabilishing connection
using (SqlConnection conn = new SqlConnection(connString))
{
string sql = @"EXEC SP_PRODUCTS"; // or another SQL command
//opening connection
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dte = new DataTable();
//filling the dataTable with the command above
adp.Fill(dte);
//closing connection
conn.Close();
//defining which report the component will render
ReportViewer1.LocalReport.ReportPath = "myReport.rdlc";
//adding the dataSource Adicionando o data source, it's important passing the same name you defined before
//at this moment, i didn't understood if the DataSource is being created populated by the dte datatable or
//if it is just binding the dte datatable to an existing dataSource named "Products
ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("Products", dte));
//without this it wont work
ReportViewer1.DataBind();
}
}
Есть идеи, как это решить?Заранее спасибо.