Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception 调用ExportToDisk时Crystal报告异常_Exception_Crystal Reports - Fatal编程技术网

Exception 调用ExportToDisk时Crystal报告异常

Exception 调用ExportToDisk时Crystal报告异常,exception,crystal-reports,Exception,Crystal Reports,我在Crystal Reports(随Visual Studio 2008发布的版本)中遇到了一些奇怪的行为。我可以正常查看报告,但尝试使用ExportToDisk失败,出现以下异常: CrystalDecisions.CrystalReports.Engine.InvalidArgumentException: 无法打印此组节 因为它的条件字段是 不存在的或无效的。格式化 节来选择另一个条件 领域文件错误 C:\DOCUME~1\gbuehler\LOCALS~1\Temp\Report {2

我在Crystal Reports(随Visual Studio 2008发布的版本)中遇到了一些奇怪的行为。我可以正常查看报告,但尝试使用
ExportToDisk
失败,出现以下异常:

CrystalDecisions.CrystalReports.Engine.InvalidArgumentException:

无法打印此组节 因为它的条件字段是 不存在的或无效的。格式化 节来选择另一个条件 领域文件错误 C:\DOCUME~1\gbuehler\LOCALS~1\Temp\Report {2FD9516D-0FD4-4D20-A326-D21EB762EB9E}。rpt: 无效的组条件。--> System.Runtime.InteropServices.COMException (0x8000020B):

无法打印此组节 因为它的条件字段是 不存在的或无效的。格式化 节来选择另一个条件 领域文件错误 C:\DOCUME~1\developer\LOCALS~1\Temp\Report {2FD9516D-0FD4-4D20-A326-D21EB762EB9E}。rpt: 无效的组条件。在 CrystalDecisions.ReportAppServer.Controller.ReportSourceClass.Export(导出选项 pExportOptions,RequestContext 前传(上下文) CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)--内循环结束 异常堆栈跟踪---在 CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(异常 e) 在 CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext (上下文)在 CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext (上下文)在 CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext (上下文)在 CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToDisk(ExportFormatType formatType,字符串文件名)位于 LSPayroll.MainForm.btnsendcanada\u单击(对象 C:\Documents中的发件人、事件参数(e) 和设置\developer\My 文档\ Visual Studio 2008\Projects\MyProject\MyProject\MainForm.cs:line 277

粗略搜索
无效组条件
将返回其他用户,他们正在寻找解决方案和建议以重新创建报告。是否有人能给出报告可以正常查看,但
ExportToDisk
异常失败的逻辑原因

不确定是否有帮助,但这是我用于创建报告文档和导出的代码:

// build a crystal reports document in memory and use the crystal 
// reports library to export as a PDF
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(reportPath);
reportDocument.SetDataSource(data);
reportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "payroll.pdf");

努力找到解决这个问题的办法

对我有效的解决方案

在声明中

reportDocument.SetDataSource(data);

确保“数据”是对数据集的引用,而不是数据表。

我使用的是数据表,它工作正常:

public ActionResult ReporteUsuarios() {
        DataTable dt = new DataTable();
        try {
            SqlConnection con = (SqlConnection)seguridad.Database.Connection;
            con.Open();
            SqlCommand cmd = new SqlCommand("select nombre from usuarios", con);
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            adp.Fill(dt);
            con.Close();
        } catch (Exception ex) {
            throw new HttpException(500, "Hubo un problema con la base de datos. " + ex.StackTrace.ToString());
        }

        ReportClass rpt = new ReportClass();
        rpt.FileName = Server.MapPath("/Reports/Usuarios.rpt");
        rpt.Load();
        rpt.SetDataSource(dt);

        Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
        return File(stream, "application/pdf", "Usuarios.pdf");
    }