WinForms reportViewer (.NET 3.5) 从 DataTable 绑定数据
我正在尝试将动态创建的 DataTable 绑定到 reportViewer 控件。互联网上有很多关于这方面的教程,但它们似乎不适用于这个项目......(有关于堆栈溢出的相关问题,但解决方案在我的情况下不起作用)
这是显示报告按钮的事件处理程序:
private void btn_ShowRwport_Click(object sender, EventArgs e)
{
//Set the date range for the report
rptctn.SetDateRangeOne(listBox1.SelectedItem.ToString(), dateTimePicker_Start.Value, dateTimePicker_End.Value);
//Get the report datatable
DataTable dt = rptctn.GetReportTest(listBox1.SelectedItem.ToString());
//Set the datagridview
dataGridView1.DataSource = dt;
//Set the reportViewer
this.reportViewer1.LocalReport.DataSources.Clear();
Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName, dt);
this.reportViewer1.LocalReport.DataSources.Add(rprtDTSource);
this.reportViewer1.RefreshReport();
}
我知道 DataTable 正在重试,因为 dataGridView 工作...... https://docs.google.com/file/d/0B6b_N7sDgjmvZHpEYS1BWWhqZ3c/edit?usp=sharing
该项目有以下限制:
由于客户端环境,必须使用 .NET 3.5。(所以报告查看器 2008)
DataTable 和 ReportViewer 的创建位于不同的包中(应用程序/表示层)
我试图避免创建 .rdlc 文件,因为报告(DataTables)具有可变数量的行/列。
任何人都知道在我的情况下如何将动态创建的 DataTable 绑定到报表查看器?