Ошибка рендеринга ReportViewer (10.0.0.0 в LocalMode) непосредственно в PDF при передаче пустого набора записей

У меня есть служебный метод (см. Ниже), который всегда хорошо мне служил. После привязки элемента управления отчетом я передаю ему элемент управления, и он отображает отчет в формате PDF.

Недавно я обновился до .NET 4.0 и нового средства просмотра отчетов 2010 (10.0.0.0). Теперь он выдает ошибку (ниже), если набор записей (набор данных), который я передаю программе просмотра отчетов, не содержит данных.

Любые идеи? Спасибо!

ОШИБКА (верхняя 5):

[InvalidOperationException: (обработка): ScalableList: индекс 0 вне допустимого диапазона [0 :: - 1]] Microsoft.ReportingServices.Diagnostics.Utilities.DefaultRSTraceInternal.Assert (логическое условие, String componentName, String сообщение) +176 Microsoft.ReportingServices. OnDemandProcessing.Scalability.ScalableList1.get_Item(Int32 index) +212 Microsoft.ReportingServices.Rendering.HPBProcessing.PageStructStaticMemberCell.AddToPageCHContent(List1 rowHeights, ScalableList`1 columnInfo, Int32 rowIndex, Int32 colIndex, Boolean isLTR, RPLWriter rplWriter, PageContext pageContext, Double pageLeft, Double pageTop, Double page &Right, DoubleatLabottleStep, RepeatLabs + .Rendering.HPBProcessing.Tablix.AddToPage (RPLWriter rplWriter, PageContext pageContext, Double pageLeft, Double pageTop, Double pageRight, Double pageBottom, RepeatState repeatState) +781

УТИЛИТНЫЙ МЕТОД:

private static void renderReportAsPDF (ReportViewer reportViewer, ответ HttpResponse) {

        Warning[] warnings;
        string[] streamids;
        string mimeType;
        string encoding;
        string extension;
        string reportName = reportViewer.LocalReport.DisplayName;
        byte[] bytes = reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding,out extension, out streamids, out warnings);

        response.Clear();
        response.ContentType = mimeType;
        response.ContentEncoding = System.Text.Encoding.UTF32;            
        response.BinaryWrite(bytes);
        response.End();

}


person BlackjacketMack    schedule 12.08.2010    source источник


Ответы (1)


Открытие файла rdlc в VS2010 и обновление формата файла устранило проблему. До .NET 4.0 отчеты работали нормально без набора записей в старом формате 2008 года.

person BlackjacketMack    schedule 12.08.2010