在WinForm中的Crystal Report上打印整个DataGridView

时间:2015-11-15 15:33:47

标签: c# winforms datagridview crystal-reports

我使用行和列的索引号(无数据集或数据源)通过代码手动填充DataGridView

e.g:

 dataGridView1[0, 0].Value = "ABC";
 dataGridView1[0, 1].Value = "XYZ";

现在我希望在Crystal Report上打印整个GridView。我如何向Crystal Report提供dataSource,或者我如何实现它?

1 个答案:

答案 0 :(得分:0)

您可以通过将datagridview的数据导出到xml来完成此操作。从那以后,您可以将它用作水晶报告的数据源。

private void Transfer()
{
 DataTable dT = GetDataTableFromDGV(dataGridView1);
 dSet.Tables.Add(dT);
 try
     {
     dSet.AcceptChanges();
     dSet.WriteXml(@"C:\MyData.xml", XmlWriteMode.WriteSchema);
      }
 catch (FileLoadException) { }

 ReportDocument cr = new ReportDocument();
        string filePath = @"C:\CrystalReportData.rpt";
        cr.Load(filePath);
        cr.SetDataSource(dSet);
        crystalReportViewer1.ReportSource = cr;
}