Ошибка отчета о загрузке Crystal Report на клиентском компьютере (VB. Net Win Forms) - PullRequest
0 голосов
/ 29 января 2020

Это сломало мне голову за одну ночь. Не удалось получить помощь на предыдущих форумах.

Мое приложение работает на других компьютерах без проблем, теперь оно установлено на пяти клиентах без проблем. На этом новом компьютере я получаю «Ошибка загрузки отчета» при открытии отчета. После этого он просто оставляет CR Viewer пустым.

ОБНОВЛЕНИЕ: Я проверил разрешения, приложение может создавать временные файлы во временной папке. Но на моем компьютере разработчика он создает 2 файла (другой файл содержит фигурные скобки), на этом конкретном клиентском компьютере (где возникает ошибка) он создает только один файл.

Я копирую содержимое папки bin на клиентские компьютеры. Для отчетов установлено значение Встроенный ресурс для Действие построения и Не копировать для Копировать в выходной каталог . Эти параметры работали без проблем на других клиентских компьютерах. Я ничего не изменил в коде получения отчетов.

Это пример кода, который я использовал:

        Try
            Dim CR As New CRInventory
            CR.SetDataSource(DataTable)
            CR.SetParameterValue("GeneratedBy", ActiveStaffMember.Fullname)
            CR.SetParameterValue("BusinessDetails", BusinessName & ", " & BusinessAddress)
            CR.SetParameterValue("ReportDate", ReportDate)
            CRV.ReportSource = CR
        Catch ex As TypeInitializationException
            ShowApplicationRuntimeErrorNotebox("LoadReport TypeInitializationException", ex.InnerException.Message)
        Catch ex As Exception
            ShowApplicationRuntimeErrorNotebox("LoadReport", ex.Message)
        End Try

Так что нового в этом компьютере? Я не знаю, у него последнее Windows обновление, я думаю?

Любая помощь подойдет, пожалуйста Я близок к тому, чтобы выбросить этот новый компьютер из окна.

ОБНОВЛЕНИЕ: Использовано ex.tostring вместо ex.Message каким-то образом поймать ошибку (спасибо Себу), и это вышло:

CrystalDecisions.Shared.CrystalReportsException: Load report failed. ---> System.Runtime.InteropServices.COMException: The document has not been opened.
   at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.get_ReportAppServer()
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.get_ReportAppServer()
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   --- End of inner exception stack trace ---
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataTable dataTable)
   at Iceberg.FItemInventoryReportB.LoadReport() in D:\Documents\Iceberg\Iceberg VS2017\Iceberg\Forms\Items\Inventory\Inventory Transactions\FItemInventoryReportB.vb:line 38

ОБНОВЛЕНИЕ: Использовано procmon.exe для мониторинга активности файловой системы приложения во время отчета погрузка. Все результаты УСПЕХ . Если только я не лаю не на то дерево.

...