private void AppendMatrixRows(ShimMatrixMember rowParentMember, ShimMatrixMemberCollection rowMembers, bool inSubtotalRow) { if (rowMembers == null) { m_rows.Add(new ShimMatrixRow(m_owner, m_rows.Count, rowParentMember, inSubtotalRow)); return; } int count = rowMembers.Count; for (int i = 0; i < count; i++) { ShimMatrixMember shimMatrixMember = rowMembers[i] as ShimMatrixMember; AppendMatrixRows(shimMatrixMember, shimMatrixMember.Children as ShimMatrixMemberCollection, inSubtotalRow || shimMatrixMember.CurrentRenderMatrixMember.IsTotal); } }
private void GenerateInnerHierarchy(Tablix owner, ShimMatrixMember parent, bool isColumn, MatrixMemberCollection children) { if (children != null) { MatrixMemberInfoCache matrixMemberInfoCache = null; if (m_isColumn) { matrixMemberInfoCache = ((children.MatrixHeadingDef.SubHeading == null) ? new MatrixMemberInfoCache((m_staticOrSubtotal != null) ? m_staticOrSubtotal.MemberCellIndex : AdjustedRenderCollectionIndex, -1) : new MatrixMemberInfoCache(-1, children.Count)); m_currentMatrixMemberCellIndexes.Children[AdjustedRenderCollectionIndex] = matrixMemberInfoCache; } m_children = new ShimMatrixMemberCollection(this, owner, isColumn, this, children, matrixMemberInfoCache); } else { owner.GetAndIncrementMemberCellDefinitionIndex(); } }
private void GenerateMatrixCells(ShimMatrixMember rowParentMember, ShimMatrixMember colParentMember, ShimMatrixMemberCollection columnMembers, bool inSubtotalRow, bool inSubtotalColumn) { if (columnMembers == null) { m_cells.Add(new ShimMatrixCell(m_owner, m_rowIndex, m_cells.Count, rowParentMember, colParentMember, inSubtotalRow || inSubtotalColumn)); return; } int count = columnMembers.Count; for (int i = 0; i < count; i++) { ShimMatrixMember shimMatrixMember = columnMembers[i] as ShimMatrixMember; GenerateMatrixCells(rowParentMember, shimMatrixMember, shimMatrixMember.Children as ShimMatrixMemberCollection, inSubtotalRow, inSubtotalColumn || shimMatrixMember.CurrentRenderMatrixMember.IsTotal); } }