private static void ReadPageItemProperties(PageItemHelper item, BinaryReader reader, long offsetEndPage) { RSTrace.RenderingTracer.Assert(item != null, "The item helper is null."); RSTrace.RenderingTracer.Assert(reader != null, "The pagination stream is null."); RSTrace.RenderingTracer.Assert(offsetEndPage > 0, "The pagination stream is corrupt."); byte b = reader.ReadByte(); while (b != 255 && reader.BaseStream.Position <= offsetEndPage) { item.ProcessPageItemToken(b, reader, offsetEndPage); b = reader.ReadByte(); } if (reader.BaseStream.Position <= offsetEndPage) { return; } throw new InvalidDataException(SPBRes.InvalidPaginationStream); }
private static void ReadSubReportProperties(PageItemHelper item, BinaryReader reader, long offsetEndPage) { RSTrace.RenderingTracer.Assert(item != null, "The item helper is null."); RSTrace.RenderingTracer.Assert(reader != null, "The pagination stream is null."); RSTrace.RenderingTracer.Assert(offsetEndPage > 0, "The pagination stream is corrupt."); byte b = reader.ReadByte(); while (b != 255 && reader.BaseStream.Position <= offsetEndPage) { switch (b) { case 23: item.BodyIndex = reader.ReadInt32(); break; case 11: item.PrevPageEnd = reader.ReadDouble(); break; case 19: { byte b2 = reader.ReadByte(); if (b2 != 7) { throw new InvalidDataException(SPBRes.InvalidTokenPaginationItems(b2.ToString("x", CultureInfo.InvariantCulture))); } PageItemContainerHelper pageItemContainerHelper = new PageItemContainerHelper(b2); PageItemHelper.ReadPageItemContainerProperties(pageItemContainerHelper, reader, offsetEndPage); item.ChildPage = pageItemContainerHelper; break; } default: item.ProcessPageItemToken(b, reader, offsetEndPage); break; } b = reader.ReadByte(); } if (reader.BaseStream.Position <= offsetEndPage) { return; } throw new InvalidDataException(SPBRes.InvalidPaginationStream); }