如何使用 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();
}