1

我是水晶报表打印的新人。任何人都建议我使用示例(源代码)在 C# 桌面应用程序中打印水晶报表的最佳方式。

4

3 回答 3

4

尝试这个

private void button1_Click(object sender, EventArgs e)
{
    CrystalReport1 rpt = new CrystalReport1();
    SqlConnection cn = new SqlConnection("data source=localhost;initial catalog=acc;uid=sa;pwd=fantastic;");
    cn.Open();
    SqlCommand cmd = new SqlCommand();
    SqlDataAdapter da = new SqlDataAdapter();
    DataTable dt = new DataTable();
    cmd.Connection = cn;
    cmd.CommandText = "select EmpNo, EName from Emp";
    da.SelectCommand = cmd;
    dt.Clear();
    da.Fill(dt);
    rpt.SetDataSource(dt);
    rpt.PrintToPrinter(1, false, 0, 0);
}
于 2012-05-06T21:46:06.363 回答
0

您是否希望用户在需要时打印?

如果是这样,只需启用 CrystalReportViewer 控件上的打印选项。

否则 kashif 提供的答案是编程方式。

于 2012-05-06T23:52:45.900 回答
0

这个对我有用。

private void PrintForm_Load(object sender, EventArgs e)
{
    ReportDocument cry = new ReportDocument();
    try
    {
        cry.Load(@"C:\Reports\CRYPT.rpt");//your report path
        SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=POS;Integrated Security=True");
        SqlDataAdapter sda = new SqlDataAdapter("Your Stored Procedure", con);
        sda.SelectCommand.CommandType = CommandType.StoredProcedure;
        sda.SelectCommand.Parameters.Add("@Doc_No", System.Data.SqlDbType.VarChar, 50).Value = Globlevariable.PrintDocNo;
        DataSet st = new DataSet();
        sda.Fill(st, "DATA");
        cry.SetDataSource(st);
            cry.PrintToPrinter(1,false,0,0);
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}
于 2018-03-21T18:29:40.510 回答