private void CalculatePropagatedPageBreak() { Microsoft.ReportingServices.ReportRendering.DataRegion dataRegion = (Microsoft.ReportingServices.ReportRendering.DataRegion)m_owner.RenderReportItem; bool thisOrAnscestorHasToggle = dataRegion.SharedHidden == Microsoft.ReportingServices.ReportRendering.SharedHiddenState.Sometimes; PageBreakLocation pageBreakLocation = PageBreakHelper.GetPageBreakLocation(dataRegion.PageBreakAtStart, dataRegion.PageBreakAtEnd); if (m_members != null && m_members.Count > 0) { pageBreakLocation = PageBreakHelper.MergePageBreakLocations(CalculatePropagatedPageBreak(m_members, thisOrAnscestorHasToggle, OwnerTablix.SnapshotTablixType == DataRegion.Type.Table), pageBreakLocation); } OwnerTablix.SetPageBreakLocation(pageBreakLocation); }
internal void ResetContext(bool clearCache) { if (clearCache) { OwnerTablix.ResetMemberCellDefinitionIndex(0); } if (m_members == null || !OwnerTablix.IsOldSnapshot) { return; } switch (OwnerTablix.SnapshotTablixType) { case DataRegion.Type.List: if (!m_isColumn) { ((ShimListMemberCollection)m_members).UpdateContext(OwnerTablix.RenderList.Contents); } break; case DataRegion.Type.Table: if (!m_isColumn) { ((ShimTableMemberCollection)m_members).UpdateContext(); } break; case DataRegion.Type.Matrix: { MatrixMemberInfoCache matrixMemberCellIndexes = null; if (clearCache && m_isColumn) { matrixMemberCellIndexes = CreateMatrixMemberCache(); } ((ShimMatrixMemberCollection)m_members).UpdateContext(matrixMemberCellIndexes); break; } } }