public override void EvaluateScopedFieldReference(string scopeName, int fieldIndex, ref AspNetCore.ReportingServices.RdlExpressions.VariantResult result) { Global.Tracer.Assert(this.m_lastRIFObject != null, "The RIF object for the current scope should be present."); try { AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet = default(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet); if (!base.m_odpContext.ReportDefinition.MappingNameToDataSet.TryGetValue(scopeName, out targetDataSet)) { throw new ReportProcessingException_NonExistingScopeReference(scopeName); } NonStructuralIdcDataManager nonStructuralIdcDataManager = default(NonStructuralIdcDataManager); if (!base.TryGetNonStructuralIdcDataManager(targetDataSet, out nonStructuralIdcDataManager)) { nonStructuralIdcDataManager = this.CreateNonStructuralIdcDataManager(scopeName, targetDataSet); } if (nonStructuralIdcDataManager.SourceDataScope.CurrentStreamingScopeInstance != nonStructuralIdcDataManager.LastParentScopeInstance) { nonStructuralIdcDataManager.RegisterActiveParent(nonStructuralIdcDataManager.SourceDataScope.CurrentStreamingScopeInstance); nonStructuralIdcDataManager.Advance(); } else { nonStructuralIdcDataManager.SetupEnvironment(); } base.m_odpContext.ReportRuntime.EvaluateSimpleFieldReference(fieldIndex, ref result); } finally { this.SetupEnvironment(this.m_lastRIFObject, this.m_lastOnDemandScopeInstance.Value(), this.m_lastOnDemandScopeInstance); } }
private NonStructuralIdcDataManager CreateNonStructuralIdcDataManager(string scopeName, Microsoft.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet) { if (!DataScopeInfo.TryGetInnermostParentScopeRelatedToTargetDataSet(targetDataSet, m_lastRIFObject, out IRIFReportDataScope targetScope)) { throw new ReportProcessingException_InvalidScopeReference(scopeName); } NonStructuralIdcDataManager nonStructuralIdcDataManager = new NonStructuralIdcDataManager(m_odpContext, targetDataSet, targetScope); RegisterDisposableDataReaderOrIdcDataManager(nonStructuralIdcDataManager); AddNonStructuralIdcDataManager(targetDataSet, nonStructuralIdcDataManager); return(nonStructuralIdcDataManager); }
private NonStructuralIdcDataManager CreateNonStructuralIdcDataManager(string scopeName, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet) { IRIFReportDataScope sourceDataScope = default(IRIFReportDataScope); if (!DataScopeInfo.TryGetInnermostParentScopeRelatedToTargetDataSet(targetDataSet, this.m_lastRIFObject, out sourceDataScope)) { throw new ReportProcessingException_InvalidScopeReference(scopeName); } NonStructuralIdcDataManager nonStructuralIdcDataManager = new NonStructuralIdcDataManager(base.m_odpContext, targetDataSet, sourceDataScope); base.RegisterDisposableDataReaderOrIdcDataManager(nonStructuralIdcDataManager); base.AddNonStructuralIdcDataManager(targetDataSet, nonStructuralIdcDataManager); return(nonStructuralIdcDataManager); }
protected void AddNonStructuralIdcDataManager(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet, NonStructuralIdcDataManager idcDataManager) { this.AddIdcDataManager(targetDataSet.IndexInCollection, idcDataManager); }
protected bool TryGetNonStructuralIdcDataManager(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet, out NonStructuralIdcDataManager nsIdcDataManager) { BaseIdcDataManager baseIdcDataManager = default(BaseIdcDataManager); if (this.TryGetIdcDataManager(targetDataSet.IndexInCollection, out baseIdcDataManager)) { nsIdcDataManager = (NonStructuralIdcDataManager)baseIdcDataManager; return(true); } nsIdcDataManager = null; return(false); }
protected void AddNonStructuralIdcDataManager(Microsoft.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet, NonStructuralIdcDataManager idcDataManager) { AddIdcDataManager(targetDataSet.IndexInCollection, idcDataManager); }
protected bool TryGetNonStructuralIdcDataManager(Microsoft.ReportingServices.ReportIntermediateFormat.DataSet targetDataSet, out NonStructuralIdcDataManager nsIdcDataManager) { if (TryGetIdcDataManager(targetDataSet.IndexInCollection, out BaseIdcDataManager idcDataManager)) { nsIdcDataManager = (NonStructuralIdcDataManager)idcDataManager; return(true); } nsIdcDataManager = null; return(false); }