C# 使用C在.NET4.7.2中打印报表#
我有一个非常基本的水晶报告,不接受任何参数。在报表查看器中打开时,系统仅提示我输入DB凭据(用户ID、密码)。一旦输入,报告将无问题执行 我的目标是在.Net桌面应用程序中打印报告。当我尝试使用load方法加载报告时,出现“load report Failed”错误 下面列出了我使用的代码:C# 使用C在.NET4.7.2中打印报表#,c#,.net,crystal-reports,C#,.net,Crystal Reports,我有一个非常基本的水晶报告,不接受任何参数。在报表查看器中打开时,系统仅提示我输入DB凭据(用户ID、密码)。一旦输入,报告将无问题执行 我的目标是在.Net桌面应用程序中打印报告。当我尝试使用load方法加载报告时,出现“load report Failed”错误 下面列出了我使用的代码: using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Windows.Forms; using CrystalDecisi
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Windows.Forms;
using CrystalDecisions.Shared;
private void btnPrint_Click(object sender, EventArgs e)
{
string rptFullPath = @"N:\CRYSTALREPORTS\v1\NULLVALUES.RPT";
try
{
PrintDialog prtDlg = new PrintDialog();
if (prtDlg.ShowDialog() == DialogResult.OK)
{
if (System.IO.File.Exists(rptFullPath))
MessageBox.Show("File Exists");
else
MessageBox.Show("File NOT Found");
CrystalDecisions.CrystalReports.Engine.ReportDocument cryRpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
crConnectionInfo.UserID = "user1";
crConnectionInfo.Password = "mypwd";
//>>>> The following line causes an error: Load Report Failed
cryRpt.Load(rptFullPath);
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
MessageBox.Show("After Load");
cryRpt.PrintOptions.PrinterName = prtDlg.PrinterSettings.PrinterName;
cryRpt.PrintToPrinter(prtDlg.PrinterSettings.Copies, prtDlg.PrinterSettings.Collate, prtDlg.PrinterSettings.FromPage, prtDlg.PrinterSettings.ToPage);
}
}
catch (Exception ex)
{
ExceptionHandling eh = new ExceptionHandling();
eh.LogError(ex);
}
}