public DataElementOutputTypes DataElementOutputForStatic(MatrixMember staticHeading) { if (!this.IsStatic) { return(this.DataElementOutput); } if (staticHeading != null && (!staticHeading.IsStatic || staticHeading.Parent == this.Parent)) { staticHeading = null; } if (staticHeading != null) { int index; int index2; if (this.m_headingDef.IsColumn) { index = staticHeading.m_index; index2 = this.m_index; } else { index = this.m_index; index2 = staticHeading.m_index; } return(this.GetDataElementOutputTypeFromCell(index, index2)); } AspNetCore.ReportingServices.ReportProcessing.Matrix matrix = (AspNetCore.ReportingServices.ReportProcessing.Matrix)base.OwnerDataRegion.ReportItemDef; if (matrix.PivotStaticColumns != null && matrix.PivotStaticRows != null) { Global.Tracer.Assert(matrix.PivotStaticColumns != null && matrix.PivotStaticRows != null); return(this.GetDataElementOutputTypeForRowCol(this.m_index)); } return(this.GetDataElementOutputTypeFromCell(0, this.m_index)); }
private static void BuildHiddenColumns(MatrixMember member, ref IntList hiddenColumns) { if (hiddenColumns == null) { hiddenColumns = new IntList(); } for (int i = 0; i < member.ColumnSpan; i++) { hiddenColumns.Add(member.MemberCellIndex + i); } }
public MatrixMember this[int index] { get { if (index >= 0 && index < this.Count) { MatrixMember matrixMember = null; if (index == 0) { matrixMember = this.m_firstMember; } else if (this.m_members != null) { matrixMember = this.m_members[index - 1]; } if (matrixMember == null) { bool isSubtotal = false; MatrixHeadingInstance matrixHeadingInstance = null; if (this.m_memberMapping != null && index < this.m_memberMapping.Count) { matrixHeadingInstance = this.m_headingInstances[this.m_memberMapping[index]]; isSubtotal = matrixHeadingInstance.IsSubtotal; } else if (this.m_subTotalPosition >= 0 && index == this.m_subTotalPosition) { isSubtotal = true; } matrixMember = new MatrixMember(this.m_owner, this.m_parent, this.m_headingDef, matrixHeadingInstance, isSubtotal, this.m_isParentSubTotal, index); if (this.m_owner.RenderingContext.CacheState) { if (index == 0) { this.m_firstMember = matrixMember; } else { if (this.m_members == null) { this.m_members = new MatrixMember[this.Count - 1]; } this.m_members[index - 1] = matrixMember; } } } return(matrixMember); } throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, this.Count); } }
public MatrixMember(Matrix owner, MatrixMember parent, MatrixHeading headingDef, MatrixHeadingInstance headingInstance, bool isSubtotal, bool isParentSubTotal, int index) : base(owner, headingDef.Grouping, headingDef.Visibility) { this.m_parent = parent; this.m_headingDef = headingDef; this.m_headingInstance = headingInstance; this.m_isSubtotal = isSubtotal; this.m_isParentSubTotal = isParentSubTotal; this.m_index = index; if (this.m_headingInstance != null) { base.m_uniqueName = this.m_headingInstance.UniqueName; } }
private static bool SearchRowTotal(Matrix matrix, MatrixMemberCollection rowTotalChildren, IntList hiddenColumns, SearchContext searchContext) { bool flag = false; MatrixMember matrixMember = null; int num = 0; while (!flag && num < rowTotalChildren.Count) { matrixMember = rowTotalChildren[num]; flag = matrixMember.ReportItem.Search(searchContext); if (!flag) { flag = Matrix.SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext); } num++; } return(flag); }
public MatrixMemberCollection(Matrix owner, MatrixMember parent, MatrixHeading headingDef, MatrixHeadingInstanceList headingInstances, List <int> memberMapping, bool isParentSubTotal) { this.m_owner = owner; this.m_parent = parent; this.m_headingInstances = headingInstances; this.m_headingDef = headingDef; this.m_memberMapping = memberMapping; this.m_isParentSubTotal = isParentSubTotal; if (owner.NoRows) { Subtotal subtotal = this.m_headingDef.Subtotal; if (subtotal != null) { if (subtotal.Position == Subtotal.PositionType.After) { this.m_subTotalPosition = 1; } else { this.m_subTotalPosition = 0; } } } }
private static bool SearchMatrixColumns(MatrixMemberCollection columns, ref IntList hiddenColumns, SearchContext searchContext) { if (columns == null) { return(false); } bool flag = false; int num = 0; int num2 = columns.Count - 1; int num3 = 0; MatrixMember matrixMember = null; MatrixMemberCollection matrixMemberCollection = null; SearchContext searchContext2 = new SearchContext(searchContext); int index = 0; int count = 0; num3 = num2 - num + 1; int num4 = num; while (!flag && num4 <= num2) { matrixMember = columns[num4]; if (matrixMember.Hidden) { if (matrixMember.IsTotal) { if (hiddenColumns != null) { index = hiddenColumns.Count; } count = matrixMember.ColumnSpan; } Matrix.BuildHiddenColumns(matrixMember, ref hiddenColumns); num3--; } else { flag = matrixMember.ReportItem.Search(searchContext2); if (!flag) { matrixMemberCollection = matrixMember.Children; flag = Matrix.SearchMatrixColumns(matrixMemberCollection, ref hiddenColumns, searchContext2); } } num4++; } if (num3 == 0) { hiddenColumns.RemoveRange(index, count); if (!flag) { if (!matrixMember.IsTotal) { matrixMember = columns[0]; } matrixMemberCollection = matrixMember.Children; if (matrixMemberCollection != null) { int num5 = 0; while (!flag && num5 < matrixMemberCollection.Count) { matrixMember = matrixMemberCollection[num5]; flag = matrixMember.ReportItem.Search(searchContext2); num5++; } } } } return(flag); }
private static bool SearchMatrixRowsContent(Matrix matrix, MatrixMember member, SearchContext searchContext, IntList hiddenColumns) { bool flag = false; int num = 0; int num2 = 0; int num3 = 0; MatrixMember matrixMember = null; MatrixMemberCollection matrixMemberCollection = null; MatrixMemberCollection matrixMemberCollection2 = null; SearchContext searchContext2 = new SearchContext(searchContext); bool flag2 = false; matrixMemberCollection2 = ((member != null) ? member.Children : matrix.RowMemberCollection); if (searchContext.ItemStartPage != searchContext.ItemEndPage) { if (member == null) { matrix.GetRowMembersOnPage(searchContext.SearchPage, out num, out num2); } else { member.GetChildRowMembersOnPage(searchContext.SearchPage, out num, out num2); } flag2 = true; } else { num = 0; num2 = matrixMemberCollection2.Count - 1; } num3 = num2 - num + 1; int num4 = num; while (!flag && num4 <= num2) { matrixMember = matrixMemberCollection2[num4]; if (matrixMember.Hidden) { num3--; } else { matrixMemberCollection = matrixMember.Children; if (matrixMemberCollection != null) { flag = matrixMember.ReportItem.Search(searchContext2); if (!flag) { if (flag2 && (num4 == num || num4 == num2)) { int itemStartPage = 0; int itemEndPage = 0; SearchContext searchContext3 = new SearchContext(searchContext); if (member == null) { matrix.IsRowMemberOnThisPage(num4, searchContext.SearchPage, out itemStartPage, out itemEndPage); } else { member.IsRowMemberOnThisPage(num4, searchContext.SearchPage, out itemStartPage, out itemEndPage); } searchContext3.ItemStartPage = itemStartPage; searchContext3.ItemEndPage = itemEndPage; flag = Matrix.SearchMatrixRowsContent(matrix, matrixMember, searchContext3, hiddenColumns); } else { flag = Matrix.SearchMatrixRowsContent(matrix, matrixMember, searchContext2, hiddenColumns); } } } else { flag = matrixMember.ReportItem.Search(searchContext2); if (!flag) { flag = Matrix.SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext2); } } } num4++; } if (!flag && num3 == 0) { if (!matrixMember.IsTotal) { matrixMember = matrixMemberCollection2[0]; } matrixMemberCollection = matrixMember.Children; flag = ((matrixMemberCollection == null) ? Matrix.SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext2) : Matrix.SearchRowTotal(matrix, matrixMemberCollection, hiddenColumns, searchContext2)); } return(flag); }