Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
        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());
        }