public override bool PrepareFieldsCollectionForDirectFields() { if (base.m_odpContext.IsPageHeaderFooter && base.m_odpContext.ReportDefinition.DataSetsNotOnlyUsedInParameters == 1) { OnDemandProcessingContext parentContext = base.m_odpContext.ParentContext; AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet firstDataSet = base.m_odpContext.ReportDefinition.FirstDataSet; AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance = parentContext.GetDataSetInstance(firstDataSet); if (dataSetInstance != null) { if (!parentContext.IsTablixProcessingComplete(firstDataSet.IndexInCollection)) { OnDemandStateManagerFull onDemandStateManagerFull = (OnDemandStateManagerFull)parentContext.StateManager; onDemandStateManagerFull.PerformOnDemandTablixProcessing(firstDataSet); } if (!dataSetInstance.NoRows) { dataSetInstance.SetupEnvironment(base.m_odpContext, false); AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.DataChunkReader dataChunkReader = parentContext.GetDataChunkReader(firstDataSet.IndexInCollection); dataChunkReader.ResetCachedStreamOffset(); return(true); } } } return(false); }
public override bool CalculateAggregate(string aggregateName) { OnDemandProcessingContext odpWorkerContextForTablixProcessing = base.GetOdpWorkerContextForTablixProcessing(); AspNetCore.ReportingServices.ReportIntermediateFormat.DataAggregateInfo dataAggregateInfo = default(AspNetCore.ReportingServices.ReportIntermediateFormat.DataAggregateInfo); odpWorkerContextForTablixProcessing.ReportAggregates.TryGetValue(aggregateName, out dataAggregateInfo); if (dataAggregateInfo == null) { return(false); } AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet = base.m_odpContext.ReportDefinition.MappingDataSetIndexToDataSet[dataAggregateInfo.DataSetIndexInCollection]; AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance = odpWorkerContextForTablixProcessing.GetDataSetInstance(dataSet); if (dataSetInstance != null) { bool flag = odpWorkerContextForTablixProcessing.IsTablixProcessingComplete(dataSet.IndexInCollection); if (!flag) { if (odpWorkerContextForTablixProcessing.IsTablixProcessingMode) { return(false); } OnDemandStateManagerFull onDemandStateManagerFull = (OnDemandStateManagerFull)odpWorkerContextForTablixProcessing.StateManager; onDemandStateManagerFull.PerformOnDemandTablixProcessingWithContextRestore(dataSet); } if (flag || base.m_odpContext.IsPageHeaderFooter) { dataSetInstance.SetupDataSetLevelAggregates(base.m_odpContext); } return(true); } return(false); }
public override bool CalculateLookup(LookupInfo lookup) { OnDemandProcessingContext odpWorkerContextForTablixProcessing = base.GetOdpWorkerContextForTablixProcessing(); AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet = base.m_odpContext.ReportDefinition.MappingDataSetIndexToDataSet[lookup.DataSetIndexInCollection]; AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance = odpWorkerContextForTablixProcessing.GetDataSetInstance(dataSet); if (dataSetInstance != null) { if (!odpWorkerContextForTablixProcessing.IsTablixProcessingComplete(dataSet.IndexInCollection)) { if (odpWorkerContextForTablixProcessing.IsTablixProcessingMode) { return(false); } OnDemandStateManagerFull onDemandStateManagerFull = (OnDemandStateManagerFull)odpWorkerContextForTablixProcessing.StateManager; onDemandStateManagerFull.PerformOnDemandTablixProcessingWithContextRestore(dataSet); } return(true); } return(false); }