I have a reportViewer that I want to print, and it’s working in my developing PC but when I deploy it to my client it says:
An error occurredd during local report processing
.
My code is as follows:
try
{
ReportParameter[] param = new ReportParameter[12];
param[0] = new ReportParameter("p1", P1);
param[1] = new ReportParameter("p2", P2);
param[2] = new ReportParameter("p3", " ");
param[3] = new ReportParameter("p4", " ");
param[4] = new ReportParameter("p4", " ");
param[5] = new ReportParameter("p5", " ");
param[6] = new ReportParameter("p6", " ");
param[7] = new ReportParameter("p7", " ");
param[8] = new ReportParameter("p8", " ");
param[9] = new ReportParameter("p9", " ");
param[10] = new ReportParameter("p10", " ");
param[11] = new ReportParameter("p11", P11);
reportViewer1.Reset();
reportViewer1.LocalReport.ReportPath = ConfigurationSettings.AppSettings["ReportPath"].ToString();//Application.StartupPath + "\\rptReport.rdlc";
reportViewer1.LocalReport.SetParameters(param);
Export(reportViewer1.LocalReport);
Print();
this.reportViewer1.RefreshReport();
this.Close();
}
catch (Exception ex) {
if (Convert.ToBoolean(ConfigurationSettings.AppSettings["debug"].ToString()) == true)
{
MessageBox.Show(ex.Message);
}
}
asked May 18, 2015 at 8:07
DiabolusDiabolus
2682 silver badges15 bronze badges
5
Load 7 more related questions
Show fewer related questions
периодически пытаюсь решить эту проблему и уже порядком задолбался, знаю что эта тема здесь крайне не популярна, 90% вопросов заданных остались без ответа, но попробую. Имеется отчет в проекте Report.rdlc, в нем одна таблица, при выводе постоянно получаю ошибку «Ошибка при локальной обработке отчета. Ссылка на объект не указывает на экземпляр объекта»
вот код которым пытаюсь прикрутить отчет к вьюверу:
C# | ||
|
вот часть кода Report.rdlc
XML | ||
|
Добавлено через 5 часов 20 минут
может хотя бы кто подскажет что значит сия ошибка: «Метод не найден: SystemString Microsoft.ReportingSevices.DateTimeUtil.ParseDateToAdditionalSettingFormat(Sysye m.String.System.Gobalization.CultureInfo)??? она вылезла в окне report vyewer, мой код теперь выглядит так:
C# | ||
|
Вопрос:
У меня есть ReportViewer в моем проекте. Когда я создаю .exe этого файла в InstallShield в Vsual Studio 2012, я добавляю в Redistributables Microsoft ReportViewer 2010
.
Когда я устанавливаю свое приложение в Windows 8 – каждый ReportViewer отображает его отчет правильно.
У меня проблема с Windows XP
ReportViewer загружается правильно, но отображает эту ошибку вместо правильного отчета:
Произошла ошибка при обработке локального отчета. Определение отчет “недействителен. Неожиданная ошибка, возникшая в отчете Обработка.
Не удалось загрузить файл или сборку Microsoft.ReportViewer.ProcessingObjectMode. Версия = 11.0.0., Культура = нейтральная, PublicKeyToken = 89845dc8080cc91 или одна из ее зависимостей. эта система не может найти указанный файл.
Я гарантирую вам, что в references I have added Microsoft.ReportViewer.Winfroms 11.0.0.0
и Copy Local = true
.
Как я могу решить эту проблему?
Лучший ответ:
Узнал, что эта ошибка означает, что вам не хватает Microsoft.ReportViewer.PorcessingObjectMode.dll
version 11.0.0.0
. Существует одно решение:
На вашем компьютере Windows 8
выполните следующие действия:
-
Откройте команду командной строки dos (нажмите START + R, затем введите cmd и нажмите ENTER)
-
Введите
cd ..
, пока вы не включитеC:\ >
ВведитеCd windows\assembly\gac_msil\Microsoft.ReportViewer.pro*
и нажмите enter -
Просто введите
cd 11*
-
Затем введите
copy * c:\
-
.dll
будет скопирован в ваш каталогC
. -
Этот файл просто скопируйте в
Program Files
наWindows XP machine
в папку, где установлено ваше приложение.
Надеюсь, что это поможет другим, поскольку я долгое время рассматривал эту проблему.
Ответ №1
Я подтвердил ответ, помеченный как ответ, потому что я был, infact, missing.dlls, но я не исправил его так, как предложил @Marek. Я использую VS2013, и установка пакета Microsoft.Reporting nuget устраняет проблему. Я бы предложил любому, у кого эта проблема, попробовать это. Таким образом, вы автоматически получаете все зависимости.
Ответ №2
Марек ответ велик и помог мне, я просто хотел добавить дополнительный файл, который мне нужен. В дополнение к
Microsoft.ReportViewer.ProcessingObjectModel.dll
Мне также понадобилось
Microsoft.SqlServer.Types.dll
(Я запускаю это с сервера, на котором есть SQLServer, но не для служб Reporting Services, поэтому, возможно, почему второй файл отсутствовал.)
Как указывал Марек, вам нужно скопировать файл с помощью командной строки, потому что библиотеки DLL в GAC_MSIL скрыты из Проводника Windows, поэтому вы не увидите их, если их искать с помощью проводника.
Я был в тупике, потому что я создаю PDF файл с ежедневной задачей, поэтому все, что я видел в моем файле журнала, было загадочной ошибкой "An error occurred during local report processing."
Я никогда не видел FaceViewer, что, по крайней мере, говорит вам пропавший файл.
Чтобы устранить эту проблему, я создал тестовую программу quickie и отобразил ReportViewer, что сделало более понятным, какие DLL мне нужны:
Ответ №3
Для начала
Это необходимо для установки пакетов nuget “Microsoft.Report.Viewer”, “ReportViewer.WebForms”, “Microsoft.ReportViewer.WinForms”, а также “Microsoft.SqlServer.Types”.
https://www.nuget.org/packages/ReportViewer.WebForms/
https://www.nuget.org/packages/Microsoft.ReportViewer.WinForms/
https://www.nuget.org/packages/Microsoft.Report.Viewer/
https://www.nuget.org/packages/Microsoft.SqlServer.Types/
Затем следует проверить web.config на наличие каких-либо тегов.
<system.web>
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</buildProviders>
<assemblies>
<add assembly="Microsoft.ReportViewer.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</assemblies>
</compilation>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" validate="false" />
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</handlers>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
У меня есть приложение VB, которое будет использовать .rdl для создания отчетов в формате PDF с помощью Microsoft.ReportViewer.WinForms.
Существуют функции, которые мы позволяем приложению запускать без отображения какого-либо пользовательского интерфейса для создания определенных отчетов на основе настроек в базе данных. И мы используем планировщик задач для ежедневного запуска приложения утром для создания некоторых ежедневных отчетов.
У нас есть несколько клиентов, использующих одно и то же приложение с одинаковыми отчетами rdl. Но один из клиентов продолжает получать проблему, когда планировщик задач запускает приложение, в то время как другие работают нормально.
Приложение в основном генерирует 11 отчетов каждый день по утрам, но 1 из отчетов продолжает выдавать исключение всякий раз, когда планировщик задач запускает его утром.
Microsoft.Reporting.WinForms.LocalProcessingException: при обработке локального отчета произошла ошибка. Microsoft.Reporting.DefinitionInvalidException: определение отчета «xxx.rdl» недопустимо.
Но когда мы не смогли воспроизвести проблему, когда мы запускаем планировщик задач или запускаем программу вручную после этого.
Полный стек ошибок:
Error Message : Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report 'D:\EASI\AutoReport\SSRSReport\Report\1tic_movie_tax_report.rdl' is invalid. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> System.Runtime.InteropServices.COMException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed)
at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext()
at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext()
at System.Configuration.ClientConfigPaths.GetEvidenceInfo(AppDomain appDomain, String exePath, String& typeName)
at System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix(AppDomain appDomain, String exePath)
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Xml.Schema.Parser..ctor(SchemaType schemaType, XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
at System.Xml.Schema.XmlSchema.Read(XmlReader reader, ValidationEventHandler validationEventHandler)
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeSerializerSettings2005.CreateReaderSettings()
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeImpl2005.CreateReaderSettings()
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeFrom200501(XmlReader xmlReader, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeUnified(Stream stream, XmlReader xmlReader, String namespaceURI, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.Upgrade(Stream stream, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.UpgradeToCurrent(Stream stream, Boolean throwUpgradeException, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportPublishing.RdlObjectModelUpgradeStrategy.Upgrade(Stream definitionStream)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase1(Stream definitionStream, String& description, String& language, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, Boolean& hasExternalImages, Boolean& hasHyperlinks)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, IDataProtection dataProtection, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
--- End of inner exception stack trace ---
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.CompileReport()
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
--- End of inner exception stack trace ---
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.LocalReport.GetParameters()
at SSRSReport.frmSsrsReport.SetReportParameter(String ReportTitle)
at SSRSReport.frmSsrsReport.ViewReport(Boolean showSplash)
at SSRSReport.frmMain.GenerateAutoReports(DateTime selectedDate)
Код:
1. rptViewer.LocalReport.ReportPath = fileName : executed on function [SSRSReport.frmSsrsReport.ViewReport]
2. rptViewer.LocalReport.GetParameters() : executed on function [SSRSReport.frmSsrsReport.SetReportParameter]
Шустрый
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 15.7.2008
Где: Россия, Москва
Репутация: нет
Всего: нет
Добрый день!
Создал отчет стандартными средствами MS Visual Studio 2008.
В отчете сделал 2 параметра, значение которых хочу задавать перед отображением отчета.
Вот кусок кода:
Код |
|
В MSDN приведен такого же рода пример.
Когда выполнение программы доходит до строки передачи значений параметров в отчет, то выскакивает ошибка «Ошибка при локальной обработке отчета».
Помогите разобраться с этой ошибкой и ее устранением.