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(); } }
private void RegisterParentForIdc(IRIFReportDataScope reportDataScope, IReference <IOnDemandScopeInstance> parentScopeInstanceRef) { IdcDataManager idcDataManager = (IdcDataManager)base.GetOrCreateIdcDataManager(reportDataScope); idcDataManager.RegisterActiveParent(parentScopeInstanceRef); }