internal void ResetContext(TableGroupCollection newRenderSubGroups, TableRowsCollection newRenderDetails) { if (m_isDetailGroup) { m_group.CurrentRenderGroupIndex = -1; _ = m_rowDefinitionEndIndex; _ = m_rowDefinitionStartIndex; if (newRenderDetails != null) { m_renderDetails = newRenderDetails; } ((ShimTableMemberCollection)m_children).UpdateDetails(m_renderDetails[0]); } else if (m_group != null && m_group.RenderGroups != null) { m_group.CurrentRenderGroupIndex = -1; if (newRenderSubGroups != null) { m_group.RenderGroups = new ShimRenderGroups(newRenderSubGroups); } if (m_children != null) { TableGroup tableGroup = m_group.CurrentShimRenderGroup as TableGroup; ((ShimTableMemberCollection)m_children).UpdateHeaderFooter(tableGroup.GroupHeader, tableGroup.GroupFooter); ((ShimTableMemberCollection)m_children).ResetContext(null); } } SetNewContext(fromMoveNext: true); }
public void ResetContext(TableGroupCollection newRenderSubGroups, TableRowsCollection newRenderDetails) { if (this.m_isDetailGroup) { base.m_group.CurrentRenderGroupIndex = -1; if (newRenderDetails != null) { this.m_renderDetails = newRenderDetails; } ((ShimTableMemberCollection)base.m_children).UpdateDetails(this.m_renderDetails[0]); } else if (base.m_group != null && base.m_group.RenderGroups != null) { base.m_group.CurrentRenderGroupIndex = -1; if (newRenderSubGroups != null) { base.m_group.RenderGroups = new ShimRenderGroups(newRenderSubGroups); } if (base.m_children != null) { TableGroup tableGroup = base.m_group.CurrentShimRenderGroup as TableGroup; ((ShimTableMemberCollection)base.m_children).UpdateHeaderFooter(tableGroup.GroupHeader, tableGroup.GroupFooter); ((ShimTableMemberCollection)base.m_children).ResetContext(null); } } this.SetNewContext(true); }
internal ShimTableMember(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, int parentCollectionIndex, TableRowsCollection renderRows) : base(parentDefinitionPath, owner, parent, parentCollectionIndex, isColumn: false) { m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex(); m_isDetailGroup = true; m_renderDetails = renderRows; m_children = new ShimTableMemberCollection(this, (Tablix)m_owner, this, renderRows[0]); m_group = new Group(owner, this); m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex(); }
private TablixMember[] CreateInnerHierarchy(Tablix owner, ShimTableMember parent, TableHeaderFooterRows headerRows, TableHeaderFooterRows footerRows, TableGroupCollection subGroups, TableRowsCollection detailRows, ref int dynamicSubgroupChildIndex) { List <ShimTableMember> list = new List <ShimTableMember>(); bool noKeepWith = subGroups == null && detailRows == null; CreateHeaderFooter(list, headerRows, DetermineKeepWithGroup(isHeader: true, headerRows, noKeepWith), owner, parent, parent == null && owner.RenderTable.FixedHeader); if (subGroups != null) { dynamicSubgroupChildIndex = list.Count; CreateInnerDynamicGroups(list, subGroups, owner, parent); } else if (detailRows != null) { dynamicSubgroupChildIndex = list.Count; list.Add(new ShimTableMember(this, owner, parent, dynamicSubgroupChildIndex, detailRows)); } CreateHeaderFooter(list, footerRows, DetermineKeepWithGroup(isHeader: false, footerRows, noKeepWith), owner, parent, isFixedTableHeader: false); return(list.ToArray()); }