コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }