Ошибка индекса вне диапазона в отчетах Telerik - PullRequest
2 голосов
/ 16 января 2012

Я получаю сообщение об ошибке сервера в приложении '/'.

Сведения об исключении:

System.ArgumentOutOfRangeException: индекс находится вне диапазона.Должен быть неотрицательным и меньшим, чем размер коллекции.Имя параметра: index

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информацию о происхождении и местонахождении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

Трассировка стека:

[ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index]
   System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) +67
   System.ThrowHelper.ThrowArgumentOutOfRangeException() +16
   System.Collections.Generic.List`1.get_Item(Int32 index) +19
   Telerik.Reporting.HtmlRendering.HtmlElementRenderer.GetEndElement(ProcessingElement startElement) +267
   Telerik.Reporting.HtmlRendering.HtmlElementRenderer.BeginRender(HtmlRenderingContext context) +382
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +17
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.HtmlTextBoxRenderer.RenderInternal(ProcessingElement processingElement, HtmlRenderingContext context) +163
   Telerik.Reporting.HtmlRendering.HtmlItemRender.Telerik.Reporting.HtmlRendering.IReportItemRender.Render(ProcessingElement processingElement, RenderingContext context) +92
   Telerik.Reporting.HtmlRendering.RenderingContext.Render(ReportItemBase item) +50
   Telerik.Reporting.HtmlRendering.Matrix.RenderInternal(HtmlRenderingContext context) +3645
   Telerik.Reporting.HtmlRendering.Matrix.Render(HtmlRenderingContext context) +40
   Telerik.Reporting.HtmlRendering.ReportSectionBaseRenderer.RenderInternal(ProcessingElement processingElement, HtmlRenderingContext context) +69
   Telerik.Reporting.HtmlRendering.HtmlItemRender.Telerik.Reporting.HtmlRendering.IReportItemRender.Render(ProcessingElement processingElement, RenderingContext context) +92
   Telerik.Reporting.HtmlRendering.RenderingContext.Render(ReportItemBase item) +50
   Telerik.Reporting.HtmlRendering.HtmlPage.RenderReportSections(HtmlWriter bodyWriter) +557
   Telerik.Reporting.HtmlRendering.HtmlPage.RenderBody(HtmlWriter bodyWriter) +320
   Telerik.Reporting.HtmlRendering.HtmlPage.Render(HtmlTextWriter primaryWriter, HtmlRenderingContext renderingContext) +112
   Telerik.Reporting.HtmlRendering.HtmlReport.Render(HtmlTextWriter writer, Int32 startPage, Int32 endPage) +304
   Telerik.Reporting.HtmlRendering.HtmlReport.Render(HtmlTextWriter writer) +56
   Telerik.Reporting.HtmlRendering.HtmlRenderingExtension.Telerik.Reporting.Processing.IRenderingExtension.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback) +134
   Telerik.Reporting.Processing.ReportProcessor.Render(IList`1 reports, ExtensionInfo extensionInfo, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback) +352
   Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, IReportDocument reportDocument, Hashtable deviceInfo, CreateStream createStreamCallback, String& documentName) +421
   Telerik.ReportViewer.WebForms.ServerReport.Render(HttpResponse response, String format, Int32 pageIndex) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\ServerReport.cs:90
   Telerik.ReportViewer.WebForms.ReportPageOperation.PerformOperation(NameValueCollection urlQuery, HttpContext context) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\ReportPageOperation.cs:25
   Telerik.ReportViewer.WebForms.HttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\HttpHandler.cs:59
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +705
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +137

Я получаю эту ошибку в средстве просмотра отчетов Telerik.Получение этой ошибки только для определенных критериев, а не для всех значений.

где я что-то упускаю?

Пожалуйста, помогите мне.

Ответы [ 3 ]

0 голосов
/ 19 июля 2018

Мы периодически сталкиваемся с очень похожей проблемой.Очистка таблиц базы данных состояния Telerik, кажется, иногда решает эту проблему для нас.Вы можете переключить @Condition в 1 в приведенном ниже сценарии, чтобы выполнить удаление.

DECLARE @Condition AS BIT = 0;
IF @Condition = 1
BEGIN
    DELETE dbo.tr_AppLock;
    DELETE dbo.tr_Object;
    DELETE dbo.tr_Set;
    DELETE dbo.tr_String;
END;

SELECT *
FROM dbo.tr_AppLock AS tal;

SELECT *
FROM dbo.tr_Object AS tob;

SELECT *
FROM dbo.tr_Set AS ts;

SELECT *
FROM dbo.tr_String AS ts;
0 голосов
/ 09 мая 2019

Убедитесь, что вы можете просмотреть отчет в Telerik Report Designer.

Я видел ту же ошибку при запуске кода:

System.ArgumentOutOfRangeException: индекс был вне диапазона. Должно быть неотрицателен и меньше размера коллекции. Имя параметра: Индекс

В конструкторе отчетов у меня была ошибка:

Отсутствует или неверное значение параметра. Пожалуйста, введите правильные данные для всех Параметры

Я исправил ошибку в конструкторе отчетов (добавив значение параметра по умолчанию, см. Скриншот ниже) и не внес никаких других изменений «кода», это решило обе проблемы.

Интересно, что если я удаляю значение по умолчанию, возвращается ошибка конструктора отчетов, но выполнение отчета в коде остается в порядке (возможно, отчет кэшируется где-то в допустимом состоянии?)

enter image description here

0 голосов
/ 22 марта 2012

У меня такая же проблема.Я еще не выяснил его происхождение, но я полагаю, что это связано с привязкой источника данных.При создании нового экземпляра в отчете он создает элементы управления по умолчанию в методе InitializeComponent () (например, List с 0 строками или TextBox без текста).И когда вы связываете источник данных (например, List с 3 элементами), он обращается к List (элемент управления Telerik Reporting) и пытается связать коллекцию с 3 элементами для управления с 0 строками.Так что в этом случае у вас было OutOfRangeException.Полагаю, что-то в этом роде.

UPD: на самом деле я вчера решил свою проблему.Это все потому, что я пытаюсь связать пустую коллекцию как источник данных элемента управления.Я просто добавил объект по умолчанию (с пустыми свойствами) в свою коллекцию, если он не содержит элементов перед привязкой.

...