Исключение Crystal Reports при вызове ExportToDisk - PullRequest
0 голосов
/ 29 июня 2011

Я получаю странное поведение с 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 \ разработчик \ LOCALS ~ 1 \ Temp \ Report {2FD9516D-0FD4-4D20-A326-D21EB762EB9E} .rpt: Неверное групповое условие. в CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export (ExportOptions pExportOptions, RequestContext pRequestContext) в CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream (ExportRequestContext reqContext) --- конец внутреннего трассировка стека исключений --- в CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException (Exception есть CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream (ExportRequestContext reqContext) в CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream (ExportRequestContext reqContext) в CrystalDecisions.CrystalReports.Engine.FormatEngine.Export (ExportRequestContext reqContext) в CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToDisk (ExportFormatType formatType, String fileName) в LSPayroll.MainForm.btnSendCanadian_Click (Объект отправитель, EventArgs e) в C: \ Documents и настройки \ разработчик \ мой Документы \ Visual Studio 2008 \ Projects \ MyProject \ MyProject \ MainForm.cs: линия 277

Беглый поиск по Invalid Group Condition возвращает других пользователей, которые ищут решения и рекомендации для воссоздания отчета. Может ли кто-нибудь дать логическую причину, по которой отчет можно просматривать нормально, но 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");

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Пытались найти решение этой проблемы

Решение, которое сработало для меня

В утверждении

reportDocument.SetDataSource(data);

убедитесь, что «данные» являются ссылкой наDataSet, а не DataTable.

0 голосов
/ 06 апреля 2015

Я использую DataTable, и он отлично работает:

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");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...