我是水晶报表打印的新人。任何人都建议我使用示例(源代码)在 C# 桌面应用程序中打印水晶报表的最佳方式。
问问题
7511 次
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 回答