private void CreateInstances()
 {
     this.m_odpContext.ReportRuntime.CurrentScope = this.m_dataSetObj;
     if (this.m_hasSortFilterInfo && this.m_odpContext.RuntimeSortFilterInfo != null)
     {
         if (this.m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo == null)
         {
             this.m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >();
         }
         this.m_odpContext.TopLevelContext.ReportRuntimeUserSortFilterInfo.AddRange(this.m_odpContext.RuntimeSortFilterInfo);
     }
     this.m_dataSetObj.CreateInstances();
     if (this.m_odpContext.ReportDefinition.InScopeEventSources != null)
     {
         int count = this.m_odpContext.ReportDefinition.InScopeEventSources.Count;
         List <IInScopeEventSource> list = null;
         for (int i = 0; i < count; i++)
         {
             IInScopeEventSource inScopeEventSource = this.m_odpContext.ReportDefinition.InScopeEventSources[i];
             if (inScopeEventSource.UserSort.DataSet == this.m_dataSet)
             {
                 if (list == null)
                 {
                     list = new List <IInScopeEventSource>(count - i);
                 }
                 list.Add(inScopeEventSource);
             }
         }
         if (list != null)
         {
             UserSortFilterContext.ProcessEventSources(this.m_odpContext, this.m_dataSetObj, list);
         }
     }
     this.m_odpContext.ReportRuntime.CurrentScope = null;
 }
Exemplo n.º 2
0
 public UserSortFilterContext(UserSortFilterContext parentContext, AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport subReport)
 {
     this.m_runtimeSortFilterInfo  = parentContext.RuntimeSortFilterInfo;
     this.m_dataSetGlobalID        = parentContext.DataSetGlobalId;
     this.m_inProcessUserSortPhase = parentContext.m_inProcessUserSortPhase;
     subReport.UpdateSubReportScopes(parentContext);
     this.m_containingScopes      = subReport.ContainingScopes;
     this.m_detailScopeSubReports = subReport.DetailScopeSubReports;
 }
Exemplo n.º 3
0
 public void UpdateContextForFirstSubreportInstance(UserSortFilterContext parentContext)
 {
     if (-1 == this.m_dataSetGlobalID)
     {
         this.m_dataSetGlobalID        = parentContext.DataSetGlobalId;
         this.m_runtimeSortFilterInfo  = parentContext.RuntimeSortFilterInfo;
         this.m_inProcessUserSortPhase = parentContext.m_inProcessUserSortPhase;
     }
 }
Exemplo n.º 4
0
 public void UpdateSubReportScopes(AspNetCore.ReportingServices.OnDemandProcessing.TablixProcessing.UserSortFilterContext context)
 {
     if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count && this.m_containingScopes.LastEntry == null)
     {
         if (context.DetailScopeSubReports != null)
         {
             this.m_detailScopeSubReports = context.CloneDetailScopeSubReports();
         }
         else
         {
             this.m_detailScopeSubReports = new List <SubReport>();
         }
         this.m_detailScopeSubReports.Add(this);
     }
     else
     {
         this.m_detailScopeSubReports = context.DetailScopeSubReports;
     }
     if (context.ContainingScopes != null)
     {
         if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count)
         {
             this.m_containingScopes.InsertRange(0, context.ContainingScopes);
         }
         else
         {
             this.m_containingScopes = context.ContainingScopes;
         }
     }
     if (this.m_report != null && this.m_report.EventSources != null)
     {
         int count = this.m_report.EventSources.Count;
         for (int i = 0; i < count; i++)
         {
             IInScopeEventSource inScopeEventSource = this.m_report.EventSources[i];
             if (inScopeEventSource.UserSort != null)
             {
                 inScopeEventSource.UserSort.DetailScopeSubReports = this.m_detailScopeSubReports;
             }
             if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count)
             {
                 if (inScopeEventSource.ContainingScopes != null && 0 < inScopeEventSource.ContainingScopes.Count)
                 {
                     inScopeEventSource.ContainingScopes.InsertRange(0, this.m_containingScopes);
                 }
                 else
                 {
                     inScopeEventSource.IsSubReportTopLevelScope = true;
                     inScopeEventSource.ContainingScopes         = this.m_containingScopes;
                 }
             }
         }
     }
 }
        public void CreateInstances(DataRegionInstance dataRegionInstance)
        {
            base.m_dataRegionDef.ResetInstanceIndexes();
            this.m_innerGroupsWithCellsForOuterPeerGroupProcessing = null;
            base.m_dataRegionDef.CurrentDataRegionInstance         = dataRegionInstance;
            dataRegionInstance.StoreAggregates(base.m_odpContext, base.m_dataRegionDef.Aggregates);
            dataRegionInstance.StoreAggregates(base.m_odpContext, base.m_dataRegionDef.PostSortAggregates);
            dataRegionInstance.StoreAggregates(base.m_odpContext, base.m_dataRegionDef.RunningValues);
            if (base.m_dataRegionDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = base.m_dataRegionDef.DataScopeInfo;
                dataRegionInstance.StoreAggregates(base.m_odpContext, dataScopeInfo.AggregatesOfAggregates);
                dataRegionInstance.StoreAggregates(base.m_odpContext, dataScopeInfo.PostSortAggregatesOfAggregates);
                dataRegionInstance.StoreAggregates(base.m_odpContext, dataScopeInfo.RunningValuesOfAggregates);
            }
            if (base.m_firstRow != null)
            {
                dataRegionInstance.FirstRowOffset = base.m_firstRow.StreamOffset;
            }
            base.m_dataRegionDef.ResetInstancePathCascade();
            if (base.m_dataRegionDef.InScopeEventSources != null)
            {
                UserSortFilterContext.ProcessEventSources(base.m_odpContext, this, base.m_dataRegionDef.InScopeEventSources);
            }
            this.CreateDataRegionScopedInstance(dataRegionInstance);
            IReference <RuntimeMemberObj>[] array;
            IReference <RuntimeMemberObj>[] innerMembers;
            bool outerGroupings;

            if (base.DataRegionDef.ProcessingInnerGrouping == AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion.ProcessingInnerGroupings.Column)
            {
                array          = this.m_outerGroupings;
                innerMembers   = this.m_innerGroupings;
                outerGroupings = true;
            }
            else
            {
                array          = this.m_innerGroupings;
                innerMembers   = this.m_outerGroupings;
                outerGroupings = false;
            }
            IReference <RuntimeMemberObj>[] array2 = array;
            foreach (IReference <RuntimeMemberObj> reference in array2)
            {
                using (reference.PinValue())
                {
                    reference.Value().CreateInstances(base.SelfReference, base.m_odpContext, dataRegionInstance, outerGroupings, null, dataRegionInstance, innerMembers, null);
                }
            }
            base.m_dataRegionDef.ResetInstancePathCascade();
            base.m_dataRegionDef.ResetInstanceIndexes();
        }
 protected override void CreateInstanceHeadingContents()
 {
     if (base.MemberDef.InScopeEventSources != null)
     {
         UserSortFilterContext.ProcessEventSources(base.m_odpContext, this, base.MemberDef.InScopeEventSources);
     }
     if (this.m_groupScopedItems != null)
     {
         List <AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem> groupScopedContents = this.GetGroupScopedContents(base.MemberDef);
         if (groupScopedContents != null)
         {
             this.m_groupScopedItems.CreateInstances(base.m_memberInstance, base.m_odpContext, base.m_selfReference, groupScopedContents);
         }
     }
 }
        public DataProcessingController(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, DataSetInstance dataSetInstance)
        {
            this.m_odpContext      = odpContext;
            this.m_dataSet         = dataSet;
            this.m_dataSetInstance = dataSetInstance;
            this.m_report          = odpContext.ReportDefinition;
            this.m_odpContext.EnsureScalabilitySetup();
            UserSortFilterContext userSortFilterContext = this.m_odpContext.UserSortFilterContext;

            if (!this.m_odpContext.InSubreportInDataRegion)
            {
                userSortFilterContext.ResetContextForTopLevelDataSet();
            }
            this.m_hasSortFilterInfo = this.m_odpContext.PopulateRuntimeSortFilterEventInfo(this.m_dataSet);
            if (-1 == userSortFilterContext.DataSetGlobalId)
            {
                userSortFilterContext.DataSetGlobalId = this.m_dataSet.GlobalID;
            }
            Global.Tracer.Assert(this.m_odpContext.ReportObjectModel != null && this.m_odpContext.ReportRuntime != null);
            this.m_odpContext.SetupFieldsForNewDataSet(this.m_dataSet, this.m_dataSetInstance, true, true);
            this.m_dataSet.SetFilterExprHost(this.m_odpContext.ReportObjectModel);
            this.m_dataSetObj = new RuntimeOnDemandDataSetObj(this.m_odpContext, this.m_dataSet, this.m_dataSetInstance);
        }
        public RuntimeOnDemandDataSetObj(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, DataSetInstance dataSetInstance)
        {
            this.m_odpContext      = odpContext;
            this.m_dataSet         = dataSet;
            this.m_dataSetInstance = dataSetInstance;
            this.m_odpContext.TablixProcessingScalabilityCache.GenerateFixedReference(this);
            UserSortFilterContext userSortFilterContext = odpContext.UserSortFilterContext;

            if (this.m_odpContext.IsSortFilterTarget(dataSet.IsSortFilterTarget, userSortFilterContext.CurrentContainingScope, this.SelfReference, ref this.m_userSortTargetInfo) && this.m_userSortTargetInfo.TargetForNonDetailSort)
            {
                this.m_dataRows = new ScalableList <DataFieldRow>(0, odpContext.TablixProcessingScalabilityCache, 100, 10);
            }
            if (!this.m_odpContext.StreamingMode)
            {
                this.CreateRuntimeStructure();
            }
            this.m_dataSet.SetupRuntimeEnvironment(this.m_odpContext);
            if (this.m_dataSet.Filters != null)
            {
                this.m_filters = new Filters(Filters.FilterTypes.DataSetFilter, (IReference <AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.IFilterOwner>) this.SelfReference, this.m_dataSet.Filters, this.m_dataSet.ObjectType, this.m_dataSet.Name, this.m_odpContext, 0);
            }
            this.RegisterAggregates();
        }