如果您需要从头开始,请考虑您需要使用 XML 在 Crystelreport 中打印 DataGridView 数据
**(This is very helpful if you not using any database)**
- 首先制作数据表
- 然后将数据添加到数据表(这里从 DataGridview 添加)
- 制作 XML 文件
- 运行报告
这里示例代码
DataTable dt = new DataTable();
dt.Columns.Add("Item_Id", typeof(string));
dt.Columns.Add("Categry", typeof(string));
dt.Columns.Add("Item_Name", typeof(string));
dt.Columns.Add("Unit_Price", typeof(double));
dt.Columns.Add("Quantity", typeof(int));
dt.Columns.Add("Discount", typeof(string));
dt.Columns.Add("Total_Payable", typeof(double));
foreach (DataGridViewRow dgr in DGVsell.Rows)
{
dt.Rows.Add(dgr.Cells[0].Value, dgr.Cells[1].Value, dgr.Cells[2].Value, dgr.Cells[3].Value, dgr.Cells[4].Value, dgr.Cells[5].Value, dgr.Cells[6].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("Bill.xml");
注意如果在制作 Xml 更改App.config文件时出错,如下所示
<?xml version="1.0" encoding="utf-8"?>
<configuration>
</startup>-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
生成xml文件后,可以调用Crystel报告
frmreport obj = new frmreport(); //load report viwer form
obj.ShowDialog();
在报告查看器中
crBill cr = new crBill();
cr.SetDataSource(frmSell.ds);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.RefreshReport();
crystalReportViewer1.Refresh();