水晶报表。该系统找不到指定的文件

Posted

技术标签:

【中文标题】水晶报表。该系统找不到指定的文件【英文标题】:Crystal Report. The System cannot find the file specified 【发布时间】:2020-08-10 15:30:48 【问题描述】:

当我点击加载收据时。它显示加载报告文件和内部异常为:

系统找不到指定的文件。

可能是什么问题?之前它可以工作,但现在出现问题。

public static void loadBillReport(ReportDocument rd, CrystalReportViewer crv, Int32 status, Int32 orderID)
        
            try
            
                SqlCommand cmd = new SqlCommand("getOrderReport", MainClass.con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@orderID", orderID);
                cmd.Parameters.AddWithValue("@status", status);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                rd.Load(Application.StartupPath + "\\Reports\\billreports.rpt");
                rd.SetDataSource(dt);
                crv.ReportSource = rd;
                crv.RefreshReport();
            
            catch (Exception ex)
            
                if (rd != null)
                
                    Console.WriteLine(ex.Message);
                    rd.Close();
                
                MainClass.showMessage(ex.Message, "Error");
            
        

【问题讨论】:

报错信息很清楚,提示找不到文件。请检查 billreports.rpt 文件是否存在于代码预期的路径中。 是的,它存在 【参考方案1】:

这里可能找不到文件:

rd.Load(Application.StartupPath + "\Reports\billreports.rpt"); 

确保文件存在并且运行程序的用户可以通过安全权限访问该文件。

另外,rpt 文件是构建的一部分吗? (bin\release) 还是 (bin\debug)?

也许编译后的版本没有找到它。

您可以将相对路径更改为绝对路径 (D:\your\path\Reports\billreports.rpt) 并测试此理论。

【讨论】:

检查运行应用程序所需的用户权限。尝试以管理员身份运行它,看看是否有任何区别。 抛出异常:CrystalDecisions.CrystalReports.Engine.dll 中的“System.Runtime.InteropServices.COMException”抛出异常:CrystalDecisions.CrystalReports.Engine.dll 中的“CrystalDecisions.Shared.CrystalReportsException”抛出异常:“ CrystalDecisions.CrystalReports.Engine.dll 中的 CrystalDecisions.Shared.CrystalReportsException' 加载报告失败。【参考方案2】:

手动将 .rpt .cs 报告文件和 crystalreportviewrs13 文件夹复制到根文件夹,即

C:/inetpub/wwwroot/ProjectName

【讨论】:

以上是关于水晶报表。该系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。

关于水晶报表的一些错误

VS2010 winform开发使用水晶报表,程序本机运行正常 放到其它机子运行报错。跪求解决办法!!!

vs2008制作水晶报表

如何用VB.NET做水晶报表?

VB.net中如何制作水晶报表?