예제 #1
0
 internal ShimTableMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, Microsoft.ReportingServices.ReportRendering.TableGroup tableGroup)
     : base(parentDefinitionPath, owner, isColumnGroup: false)
 {
     m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
     m_children = CreateInnerHierarchy(owner, parent, tableGroup.GroupHeader, tableGroup.GroupFooter, tableGroup.SubGroups, tableGroup.DetailRows, ref m_dynamicSubgroupChildIndex);
     m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
 }
 internal ShimMatrixMember(IDefinitionPath parentDefinitionPath, Tablix owner, ShimMatrixMember parent, int parentCollectionIndex, bool isColumn, int renderCollectionIndex, ShimRenderGroups renderGroups, MatrixMemberInfoCache matrixMemberCellIndexes)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex, isColumn)
 {
     m_renderCollectionIndex          = renderCollectionIndex;
     m_currentMatrixMemberCellIndexes = matrixMemberCellIndexes;
     m_definitionStartIndex           = owner.GetCurrentMemberCellDefinitionIndex();
     m_group = new Group(owner, renderGroups, this);
     GenerateInnerHierarchy(owner, parent, isColumn, ((MatrixMember)m_group.CurrentShimRenderGroup).Children);
     m_definitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
 }
예제 #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();
 }
 internal ShimMatrixMember(IDefinitionPath parentDefinitionPath, Tablix owner, ShimMatrixMember parent, int parentCollectionIndex, bool isColumn, int renderCollectionIndex, MatrixMember staticOrSubtotal, bool isAfterSubtotal, MatrixMemberInfoCache matrixMemberCellIndexes)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex, isColumn)
 {
     m_renderCollectionIndex          = renderCollectionIndex;
     m_isAfterSubtotal                = isAfterSubtotal;
     m_currentMatrixMemberCellIndexes = matrixMemberCellIndexes;
     m_definitionStartIndex           = owner.GetCurrentMemberCellDefinitionIndex();
     m_staticOrSubtotal               = staticOrSubtotal;
     GenerateInnerHierarchy(owner, parent, isColumn, staticOrSubtotal.Children);
     m_definitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
 }
예제 #5
0
 internal ShimTableMember(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, int parentCollectionIndex, ShimRenderGroups renderGroups)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex, isColumn: false)
 {
     m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
     if (renderGroups != null)
     {
         m_children = new ShimTableMemberCollection(this, (Tablix)m_owner, this, (TableGroup)renderGroups[0]);
     }
     m_group = new Group(owner, renderGroups, this);
     m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
 }
예제 #6
0
        internal ShimTableMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, TableDetailRowCollection detailRows)
            : base(parentDefinitionPath, owner, isColumnGroup: false)
        {
            m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
            int count = detailRows.Count;

            m_children = new ShimTableMember[count];
            for (int i = 0; i < count; i++)
            {
                m_children[i] = new ShimTableMember(this, owner, parent, i, detailRows[i], KeepWithGroup.None, isFixedTableHeader: false);
            }
            m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
        }
예제 #7
0
 internal ShimTableMember(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, int parentCollectionIndex, TableRow staticRow, KeepWithGroup keepWithGroup, bool isFixedTableHeader)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex, isColumn: false)
 {
     m_innerStaticRow          = staticRow;
     m_rowDefinitionStartIndex = owner.GetAndIncrementMemberCellDefinitionIndex();
     m_rowDefinitionEndIndex   = owner.GetCurrentMemberCellDefinitionIndex();
     m_keepWithGroup           = keepWithGroup;
     m_isFixedHeader           = isFixedTableHeader;
 }
예제 #8
0
 internal ShimTableMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, bool isColumnGroup)
     : base(parentDefinitionPath, owner, isColumnGroup)
 {
     if (m_isColumnGroup)
     {
         int count = owner.RenderTable.Columns.Count;
         m_children = new ShimTableMember[count];
         for (int i = 0; i < count; i++)
         {
             m_children[i] = new ShimTableMember(this, owner, i, owner.RenderTable.Columns);
         }
     }
     else
     {
         m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
         m_children = CreateInnerHierarchy(owner, null, owner.RenderTable.TableHeader, owner.RenderTable.TableFooter, owner.RenderTable.TableGroups, owner.RenderTable.DetailRows, ref m_dynamicSubgroupChildIndex);
         m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
     }
 }
        internal ShimMatrixMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, bool isColumnGroup, ShimMatrixMember parent, MatrixMemberCollection renderMemberCollection, MatrixMemberInfoCache matrixMemberCellIndexes)
            : base(parentDefinitionPath, owner, isColumnGroup)
        {
            m_definitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
            int count = renderMemberCollection.Count;

            if (renderMemberCollection[0].IsStatic)
            {
                m_children = new ShimMatrixMember[count];
                for (int i = 0; i < count; i++)
                {
                    m_children[i] = new ShimMatrixMember(this, owner, parent, i, isColumnGroup, i, renderMemberCollection[i], isAfterSubtotal: false, matrixMemberCellIndexes);
                }
            }
            else
            {
                m_dynamicSubgroupChildIndex = 0;
                bool flag  = renderMemberCollection.MatrixHeadingDef.Subtotal != null;
                bool flag2 = flag && renderMemberCollection.MatrixHeadingDef.Subtotal.Position == Subtotal.PositionType.After;
                m_children = new ShimMatrixMember[(!flag) ? 1 : 2];
                if (flag)
                {
                    m_subtotalChildIndex = 0;
                    if (flag2)
                    {
                        m_subtotalChildIndex++;
                    }
                    else
                    {
                        m_dynamicSubgroupChildIndex++;
                    }
                }
                if (flag)
                {
                    Microsoft.ReportingServices.ReportRendering.ReportItem reportItem = renderMemberCollection[m_subtotalChildIndex].ReportItem;
                    if (reportItem != null)
                    {
                        if (isColumnGroup)
                        {
                            m_sizeDelta += reportItem.Width.ToMillimeters();
                        }
                        else
                        {
                            m_sizeDelta += reportItem.Height.ToMillimeters();
                        }
                    }
                }
                if (flag && !flag2)
                {
                    m_children[m_subtotalChildIndex] = new ShimMatrixMember(this, owner, parent, m_subtotalChildIndex, isColumnGroup, 0, renderMemberCollection[0], flag2, matrixMemberCellIndexes);
                }
                ShimRenderGroups renderGroups     = new ShimRenderGroups(renderMemberCollection, flag && !flag2, flag && flag2);
                ShimMatrixMember shimMatrixMember = (ShimMatrixMember)(m_children[m_dynamicSubgroupChildIndex] = new ShimMatrixMember(this, owner, parent, m_dynamicSubgroupChildIndex, isColumnGroup, m_dynamicSubgroupChildIndex, renderGroups, matrixMemberCellIndexes));
                if (flag && flag2)
                {
                    m_children[m_subtotalChildIndex] = new ShimMatrixMember(this, owner, parent, m_subtotalChildIndex, isColumnGroup, count - 1, renderMemberCollection[count - 1], flag2, matrixMemberCellIndexes);
                }
                m_sizeDelta += shimMatrixMember.SizeDelta;
            }
            m_definitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
        }