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; }
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; }
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; } }
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(); }