private void CreateInstances()
 {
     m_odpContext.ReportRuntime.CurrentScope = m_dataSetObj;
     if (m_hasSortFilterInfo && m_odpContext.RuntimeSortFilterInfo != null)
     {
         if (m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo == null)
         {
             m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >();
         }
         m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo.AddRange(m_odpContext.RuntimeSortFilterInfo);
     }
     m_dataSetObj.CreateInstances();
     if (m_odpContext.ReportDefinition.InScopeEventSources != null)
     {
         int count = m_odpContext.ReportDefinition.InScopeEventSources.Count;
         List <IInScopeEventSource> list = null;
         for (int i = 0; i < count; i++)
         {
             IInScopeEventSource inScopeEventSource = m_odpContext.ReportDefinition.InScopeEventSources[i];
             if (inScopeEventSource.UserSort.DataSet == m_dataSet)
             {
                 if (list == null)
                 {
                     list = new List <IInScopeEventSource>(count - i);
                 }
                 list.Add(inScopeEventSource);
             }
         }
         if (list != null)
         {
             UserSortFilterContext.ProcessEventSources(m_odpContext, m_dataSetObj, list);
         }
     }
     m_odpContext.ReportRuntime.CurrentScope = null;
 }
        internal void CreateInstances(DataRegionInstance dataRegionInstance)
        {
            m_dataRegionDef.ResetInstanceIndexes();
            m_innerGroupsWithCellsForOuterPeerGroupProcessing = null;
            m_dataRegionDef.CurrentDataRegionInstance         = dataRegionInstance;
            dataRegionInstance.StoreAggregates(m_odpContext, m_dataRegionDef.Aggregates);
            dataRegionInstance.StoreAggregates(m_odpContext, m_dataRegionDef.PostSortAggregates);
            dataRegionInstance.StoreAggregates(m_odpContext, m_dataRegionDef.RunningValues);
            if (m_dataRegionDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = m_dataRegionDef.DataScopeInfo;
                dataRegionInstance.StoreAggregates(m_odpContext, dataScopeInfo.AggregatesOfAggregates);
                dataRegionInstance.StoreAggregates(m_odpContext, dataScopeInfo.PostSortAggregatesOfAggregates);
                dataRegionInstance.StoreAggregates(m_odpContext, dataScopeInfo.RunningValuesOfAggregates);
            }
            if (m_firstRow != null)
            {
                dataRegionInstance.FirstRowOffset = m_firstRow.StreamOffset;
            }
            m_dataRegionDef.ResetInstancePathCascade();
            if (m_dataRegionDef.InScopeEventSources != null)
            {
                UserSortFilterContext.ProcessEventSources(m_odpContext, this, m_dataRegionDef.InScopeEventSources);
            }
            CreateDataRegionScopedInstance(dataRegionInstance);
            IReference <RuntimeMemberObj>[] array;
            IReference <RuntimeMemberObj>[] innerMembers;
            bool outerGroupings;

            if (base.DataRegionDef.ProcessingInnerGrouping == Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion.ProcessingInnerGroupings.Column)
            {
                array          = m_outerGroupings;
                innerMembers   = m_innerGroupings;
                outerGroupings = true;
            }
            else
            {
                array          = m_innerGroupings;
                innerMembers   = m_outerGroupings;
                outerGroupings = false;
            }
            IReference <RuntimeMemberObj>[] array2 = array;
            foreach (IReference <RuntimeMemberObj> reference in array2)
            {
                using (reference.PinValue())
                {
                    reference.Value().CreateInstances(base.SelfReference, m_odpContext, dataRegionInstance, outerGroupings, null, dataRegionInstance, innerMembers, null);
                }
            }
            m_dataRegionDef.ResetInstancePathCascade();
            m_dataRegionDef.ResetInstanceIndexes();
        }
Пример #3
0
 protected override void CreateInstanceHeadingContents()
 {
     if (base.MemberDef.InScopeEventSources != null)
     {
         UserSortFilterContext.ProcessEventSources(m_odpContext, this, base.MemberDef.InScopeEventSources);
     }
     if (m_groupScopedItems != null)
     {
         List <Microsoft.ReportingServices.ReportIntermediateFormat.ReportItem> groupScopedContents = GetGroupScopedContents(base.MemberDef);
         if (groupScopedContents != null)
         {
             m_groupScopedItems.CreateInstances(m_memberInstance, m_odpContext, m_selfReference, groupScopedContents);
         }
     }
 }