private void CheckForPrematureScopeInstance(IRIFReportDataScope reportDataScope) { if (!OnDemandStateManagerStreaming.CanBindOrProcessIndividually(reportDataScope) && !reportDataScope.DataScopeInfo.NeedsIDC && !reportDataScope.IsDataIntersectionScope && !DataScopeInfo.HasDecomposableAncestorWithNonLatestInstanceBinding(reportDataScope)) { this.TryProcessToNextScopeInstance(reportDataScope); } }
public void CreatedScopeInstance(IRIFReportDataScope scope) { this.m_anyScopeInstanceCreated = true; if (OnDemandStateManagerStreaming.CanBindOrProcessIndividually(scope) && this.IsTargetScopeForDataProcessing(scope)) { this.m_stoppingScopeInstanceCreated = true; } }
private void EnsureScopeIsBound(IRIFReportDataScope reportDataScope) { this.BindScopeToInstance(reportDataScope); if (!reportDataScope.IsBoundToStreamingScopeInstance && OnDemandStateManagerStreaming.CanBindOrProcessIndividually(reportDataScope) && this.TryProcessToNextScopeInstance(reportDataScope)) { this.BindScopeToInstance(reportDataScope); } if (!reportDataScope.IsBoundToStreamingScopeInstance) { reportDataScope.BindToNoRowsScopeInstance(base.m_odpContext); } }
public override void BindNextMemberInstance(IInstancePath rifObject, IReportScopeInstance romInstance, int moveNextInstanceIndex) { IRIFReportDataScope iRIFReportDataScope = romInstance.ReportScope.RIFReportScope as IRIFReportDataScope; IReference <IOnDemandMemberInstance> reference = iRIFReportDataScope.CurrentStreamingScopeInstance as IReference <IOnDemandMemberInstance>; if (!reference.Value().IsNoRows) { IDisposable disposable = reference.PinValue(); IOnDemandMemberInstance onDemandMemberInstance = reference.Value(); iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance()); if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance && OnDemandStateManagerStreaming.CanBindOrProcessIndividually(iRIFReportDataScope) && onDemandMemberInstance.IsMostRecentlyCreatedScopeInstance) { IdcDataManager idcDataManager = null; if (iRIFReportDataScope.DataScopeInfo.NeedsIDC) { idcDataManager = (IdcDataManager)base.GetIdcDataManager(iRIFReportDataScope); List <object> groupExprValues = onDemandMemberInstance.GroupExprValues; AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode reportHierarchyNode = (AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode)iRIFReportDataScope; List <AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo> groupExpressions = reportHierarchyNode.Grouping.GroupExpressions; idcDataManager.SetSkippingFilter(groupExpressions, groupExprValues); } if (this.TryProcessToNextScopeInstance(iRIFReportDataScope)) { iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance()); } if (idcDataManager != null) { idcDataManager.ClearSkippingFilter(); } } if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance) { iRIFReportDataScope.BindToNoRowsScopeInstance(base.m_odpContext); } this.SetupEnvironment(iRIFReportDataScope, iRIFReportDataScope.CurrentStreamingScopeInstance.Value(), iRIFReportDataScope.CurrentStreamingScopeInstance); disposable.Dispose(); } }