我听说打印 DataTable 的最佳方法是使用 ReportViewer 。然而,我发现实现这一点比我想象的更难。我不熟悉ReportViewer,所以也许我想找到一个不存在的解决方案。
“reportView”是ReportViewer控件。
//I am creating a fresh new DataTable here.
DataTable reportDT = new DataTable();
reportDT.TableName = "reportDT";
DataColumn dataColID = reportDT.Columns.Add("ID");
DataColumn dataColValue = reportDT.Columns.Add("Value");
DataRow newrow = reportDT.NewRow();
newrow["ID"] = string1;
newrow["Value"] = string2;
reportDT.Rows.Add(newrow);
//Until now, this works perfectly with DataGridView.
//I am creating a new source object, hopefully from my datatable.
ReportDataSource source = new ReportDataSource("reportDT", reportDT);
reportView.ProcessingMode = ProcessingMode.Local;
reportView.LocalReport.DataSources.Add(source);
this.reportView.RefreshReport();
像这样运行应用程序不会引发异常,但它也不会在报告视图中显示任何数据。它说:“尚未指定报告定义的来源”。 我意识到它可能需要一个.rdlc文件,必须在设计时创建。但是,如果我创建它的设计时间,它希望我用数据填充它,这是我无法做到的,因为数据是在运行时创建的。所以我想在ReportViewer中显示一堆数据,但上面的代码不起作用。这有什么问题?