gpt4 book ai didi

c# - 使用 Crystal Reports for .net 时出错

转载 作者:太空狗 更新时间:2023-10-29 21:55:39 24 4
gpt4 key购买 nike

我编写了一个程序,可以从 Crystal Report 生成 PDF,然后通过电子邮件将这些 PDF 发送给某人。该程序在我的开发机器上运行良好,但是当我将 bin\Release 目录复制到 Windows 2000 Server(我想运行它的机器)时,它开始运行,然后生成此错误和堆栈跟踪:

The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.
at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
at DailyJobCostSummaryEmail.Program.crptToPDF(String reportFile, String jobNum, String outputLocation) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 79
at DailyJobCostSummaryEmail.Program.Main(String[] args) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 46

除了从 VISUAL STUDIO 运行时,到处都会出现错误。

.Net 2.0 安装在该机器上,我已经安装了 CRRedist2005_x86.msi 但没有任何效果。我什至收到“向 Microsoft 发送错误报告”对话框,即使我正在使用 try/catch 将异常打印到文件中。即使执行了 catch block ,我的程序也不会正常关闭。

static void Main(string[] args)
{
try
{
String dir = @"JobCostReports";
DataTable jobs = new DataTable();

using (SqlConnection conn = new SqlConnection(connString))
{
String sql = "JC_GetJobsClosedYesterday";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(jobs);
}

List<String> files = new List<String>();

foreach (DataRow row in jobs.Rows)
{
files.Add(crptToPDF(@"JobCost.rpt", row["JobNumber"].ToString().TrimEnd(), dir));
}

Utilities.sendEmail("[toEmail]",
"[FromEmail]",
"Job Cost Summaries for Yesterday",
"Attached are Job cost summaries for the " + files.Count + " jobs closed yesterday.",
files.ToArray());

Console.WriteLine("Email sent.");
}
catch (Exception e)
{
using (StreamWriter writer = new StreamWriter("errors.log", true))
{
writer.AutoFlush = true;
Console.WriteLine();
writer.WriteLine(e.Message);
writer.WriteLine(e.StackTrace);
}

Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
Console.Read();
}
finally { }
}

public static String crptToPDF(String reportFile, String jobNum, String outputLocation)
{
using (ReportDocument rpt = new ReportDocument())
{
rpt.Load(reportFile);
rpt.SetParameterValue("@vJobNumber", jobNum);
String output = outputLocation + @"\" + jobNum + "_JobCostSummary.pdf";
rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, output);
return output;
}
}

我没有包括所有正确的引用和使用语句吗?我尝试了很多组合,但没有效果。

最佳答案

这也可能是一个问题,因为 visual studio 附带的 CR 程序集与完整产品的版本不同。

如果您在使用从业务对象下载的运行时时遇到问题,请尝试此处的运行时:

https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567

关于c# - 使用 Crystal Reports for .net 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5342803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com