internal ShimDataMember(IDefinitionPath parentDefinitionPath, CustomReportItem owner, ShimDataMember parent, int parentCollectionIndex, bool isColumn, bool isStatic, Microsoft.ReportingServices.ReportRendering.DataMemberCollection renderMembers, int staticIndex)
            : base(parentDefinitionPath, owner, parent, parentCollectionIndex)
        {
            m_definitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
            m_isColumn             = isColumn;
            m_isStatic             = isStatic;
            m_renderMembers        = renderMembers;
            m_staticIndex          = staticIndex;
            DataGroupingCollection children;

            if (isStatic)
            {
                children = renderMembers[staticIndex].Children;
            }
            else
            {
                m_group  = new Group(owner, new ShimRenderGroups(renderMembers));
                children = renderMembers[0].Children;
            }
            if (children != null)
            {
                m_children = new ShimDataMemberCollection(this, owner, isColumn, this, children);
            }
            else
            {
                owner.GetAndIncrementMemberCellDefinitionIndex();
            }
            m_definitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
        }
예제 #2
0
        internal ShimDataMemberCollection(IDefinitionPath parentDefinitionPath, CustomReportItem owner, bool isColumnMember, ShimDataMember parent, DataGroupingCollection definitionGroups)
            : base(parentDefinitionPath, owner)
        {
            m_isColumnMember       = isColumnMember;
            m_definitionGroups     = definitionGroups;
            m_definitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
            if (definitionGroups[0] != null && definitionGroups[0][0] != null)
            {
                m_isStatic = definitionGroups[0][0].IsStatic;
            }
            int count = definitionGroups.Count;

            m_children = new ShimDataMember[count];
            for (int i = 0; i < count; i++)
            {
                m_children[i] = new ShimDataMember(this, owner, parent, i, m_isColumnMember, m_isStatic, definitionGroups[i], i);
            }
            m_definitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
        }