如何使用 C# 在 Windows 表单应用程序的新 Window 中查看 Crystal 报告?
How to view Crystal Reports in new Window of Windows Form Application using C#?
我已经使用 Crystal 报告 制作了 报告 但是如何在新的 [ 中显示它=25=] ?下面是我的代码示例。
//Printing Report
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Salutation", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Sex", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Fees_Amount", typeof(string));
dt.Columns.Add("Fees_Status", typeof(string));
//add datagridview data to table
foreach (DataGridViewRow dgv in dgvOldData2.Rows)
{
dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[4].Value, dgv.Cells[5].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("sample.xml");
//transefer data to crystalreportviewer
Reports.CrystalReport1 cr = new Reports.CrystalReport1();
cr.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Show();
}
您需要让查看器在第二种形式上具有 public 函数(或构造函数),该函数将 CR 作为参数并将其设置给查看器。这样您就可以准备报告,然后将其传递给该函数。
表格 2:
public void LinkReport(CrystalDecisions.CrystalReports.Engine.ReportDocument cr){
crystalReportViewer1.ReportSource = cr;
}
表格 1:
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Salutation", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Sex", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Fees_Amount", typeof(string));
dt.Columns.Add("Fees_Status", typeof(string));
//add datagridview data to table
foreach (DataGridViewRow dgv in dgvOldData2.Rows)
{
dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[4].Value, dgv.Cells[5].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("sample.xml");
//transefer data to crystalreportviewer
Reports.CrystalReport1 cr = new Reports.CrystalReport1();
cr.SetDataSource(ds);
form1 f = new form1();
f.LinkReport(cr);
f.Show();
}
我已经使用 Crystal 报告 制作了 报告 但是如何在新的 [ 中显示它=25=] ?下面是我的代码示例。
//Printing Report
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Salutation", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Sex", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Fees_Amount", typeof(string));
dt.Columns.Add("Fees_Status", typeof(string));
//add datagridview data to table
foreach (DataGridViewRow dgv in dgvOldData2.Rows)
{
dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[4].Value, dgv.Cells[5].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("sample.xml");
//transefer data to crystalreportviewer
Reports.CrystalReport1 cr = new Reports.CrystalReport1();
cr.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Show();
}
您需要让查看器在第二种形式上具有 public 函数(或构造函数),该函数将 CR 作为参数并将其设置给查看器。这样您就可以准备报告,然后将其传递给该函数。
表格 2:
public void LinkReport(CrystalDecisions.CrystalReports.Engine.ReportDocument cr){
crystalReportViewer1.ReportSource = cr;
}
表格 1:
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Salutation", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Sex", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Fees_Amount", typeof(string));
dt.Columns.Add("Fees_Status", typeof(string));
//add datagridview data to table
foreach (DataGridViewRow dgv in dgvOldData2.Rows)
{
dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[4].Value, dgv.Cells[5].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("sample.xml");
//transefer data to crystalreportviewer
Reports.CrystalReport1 cr = new Reports.CrystalReport1();
cr.SetDataSource(ds);
form1 f = new form1();
f.LinkReport(cr);
f.Show();
}