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);
        }
Пример #2
0
 public static void TraceReportInstance(OnDemandMetadata odpMetadata, ReportInstance reportInstance, Report reportDefinition, int level)
 {
     if (Global.Tracer.TraceVerbose && reportInstance != null)
     {
         if (odpMetadata != null)
         {
             GroupTreeTracer.TraceMetadata(odpMetadata, level);
         }
         Global.Tracer.Trace("{0}Report: NoRows={1}, Language={2}, Variables={3}", GroupTreeTracer.GetEmptyString(level), reportInstance.NoRows, reportInstance.Language, GroupTreeTracer.FlattenObjectArray(reportInstance.VariableValues));
         if (odpMetadata == null && reportDefinition != null && reportDefinition.MappingDataSetIndexToDataSet.Count > 0)
         {
             Global.Tracer.Trace("{0}{1} DataSetInstances: ", GroupTreeTracer.GetEmptyString(level), reportDefinition.MappingDataSetIndexToDataSet.Count);
             IEnumerator cachedDataSetInstances = reportInstance.GetCachedDataSetInstances();
             while (cachedDataSetInstances.MoveNext())
             {
                 DataSetInstance dataSetInstance = (DataSetInstance)cachedDataSetInstances.Current;
                 if (dataSetInstance != null)
                 {
                     GroupTreeTracer.TraceDataSetInstance(dataSetInstance, level + 1);
                 }
             }
         }
         GroupTreeTracer.TraceScopeInstance(reportInstance, level);
     }
 }
Пример #3
0
 public void SetupFields(OnDemandProcessingContext odpContext, DataSetInstance dataSetInstance)
 {
     if (!dataSetInstance.NoRows)
     {
         if (0 < this.m_firstRowOffset)
         {
             odpContext.ReportObjectModel.RegisterOnDemandFieldValueUpdate(this.m_firstRowOffset, dataSetInstance, odpContext.GetDataChunkReader(dataSetInstance.DataSetDef.IndexInCollection));
         }
         else
         {
             odpContext.ReportObjectModel.ResetFieldValues();
         }
     }
 }
Пример #4
0
 public void SetupEnvironment(OnDemandProcessingContext odpContext)
 {
     if (this.m_dataSetInstances == null)
     {
         this.InitDataSetInstances(odpContext);
     }
     for (int i = 0; i < this.m_dataSetInstances.Length; i++)
     {
         DataSetInstance dataSetInstance = this.GetDataSetInstance(i, odpContext);
         if (dataSetInstance != null)
         {
             dataSetInstance.SetupDataSetLevelAggregates(odpContext);
         }
     }
     if (this.m_variables != null)
     {
         ScopeInstance.SetupVariables(odpContext, odpContext.ReportDefinition.Variables, this.m_variables);
     }
 }
Пример #5
0
 public void PopulateExtendedFieldsProperties(DataSetInstance dataSetInstance)
 {
     if (dataSetInstance.FieldInfos != null)
     {
         int num = dataSetInstance.FieldInfos.Length;
         this.m_fieldPropertyNames = new RecordSetPropertyNamesList(num);
         for (int i = 0; i < num; i++)
         {
             FieldInfo fieldInfo = dataSetInstance.FieldInfos[i];
             RecordSetPropertyNames recordSetPropertyNames = null;
             if (fieldInfo != null && fieldInfo.PropertyCount != 0)
             {
                 recordSetPropertyNames = new RecordSetPropertyNames();
                 recordSetPropertyNames.PropertyNames = new List <string>(fieldInfo.PropertyCount);
                 recordSetPropertyNames.PropertyNames.AddRange(fieldInfo.PropertyNames);
             }
             this.m_fieldPropertyNames.Add(recordSetPropertyNames);
         }
     }
 }
        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);
        }
Пример #7
0
        public void InitializeFromSnapshot(OnDemandProcessingContext odpContext)
        {
            if (!odpContext.ReprocessSnapshot)
            {
                int num = 0;
                if (this.m_dataSetInstances == null && odpContext.ReportDefinition.MappingNameToDataSet != null)
                {
                    num = odpContext.ReportDefinition.MappingNameToDataSet.Count;
                }
                this.m_dataSetInstances = new DataSetInstance[num];
            }
            Report reportDefinition = odpContext.ReportDefinition;

            this.m_noRows = (reportDefinition.DataSetsNotOnlyUsedInParameters > 0);
            List <DataSource> dataSources = reportDefinition.DataSources;

            for (int i = 0; i < dataSources.Count; i++)
            {
                List <DataSet> dataSets = dataSources[i].DataSets;
                if (dataSets != null)
                {
                    for (int j = 0; j < dataSets.Count; j++)
                    {
                        DataSet dataSet = dataSets[j];
                        if (dataSet != null)
                        {
                            DataSetInstance dataSetInstance = this.GetDataSetInstance(dataSet, odpContext);
                            if (dataSetInstance != null && this.m_noRows && !dataSetInstance.NoRows)
                            {
                                this.m_noRows = false;
                            }
                        }
                    }
                }
            }
        }
Пример #8
0
 public void SetDataSetInstance(DataSetInstance dataSetInstance)
 {
     this.m_dataSetInstances[dataSetInstance.DataSetDef.IndexInCollection] = dataSetInstance;
 }
 public override IRecordRowReader CreateSequentialDataReader(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, out AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance)
 {
     AspNetCore.ReportingServices.ReportIntermediateFormat.ReportInstance currentReportInstance = base.m_odpContext.CurrentReportInstance;
     dataSetInstance = currentReportInstance.GetDataSetInstance(dataSet, base.m_odpContext);
     AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.DataChunkReader dataChunkReader = null;
     if (!dataSetInstance.NoRows)
     {
         dataChunkReader = new AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.DataChunkReader(dataSetInstance, base.m_odpContext, dataSetInstance.DataChunkName);
         base.RegisterDisposableDataReaderOrIdcDataManager(dataChunkReader);
     }
     return(dataChunkReader);
 }
        private void SetupObjectModels(OnDemandMode mode, bool needDeepCopyPath, int moveNextInstanceIndex, string scopeName)
        {
            AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegionInstance dataRegionInstance = null;
            IMemberHierarchy memberHierarchy         = null;
            int                     num              = -1;
            ScopeInstance           scopeInstance    = base.m_odpContext.CurrentReportInstance;
            List <InstancePathItem> lastInstancePath = this.m_lastInstancePath;
            List <InstancePathItem> list             = null;
            int                     num2             = 0;

            AspNetCore.ReportingServices.ReportIntermediateFormat.Report reportDefinition = base.m_odpContext.ReportDefinition;
            ObjectModelImpl reportObjectModel = base.m_odpContext.ReportObjectModel;
            bool            flag  = false;
            bool            flag2 = false;
            int             num3  = 0;

            try
            {
                if (this.m_lastRIFObject.InstancePath != null)
                {
                    list = this.m_lastRIFObject.InstancePath;
                    num2 = list.Count;
                }
                if (mode != OnDemandMode.InScope)
                {
                    base.m_odpContext.EnsureCultureIsSetOnCurrentThread();
                }
                if (mode != OnDemandMode.InScope || 1 != reportDefinition.DataSetsNotOnlyUsedInParameters || !this.InScopeCompare(reportDefinition.FirstDataSet.Name, scopeName))
                {
                    int num4 = 0;
                    if (base.m_odpContext.InSubreport)
                    {
                        num4 = InstancePathItem.GetParentReportIndex(this.m_lastRIFObject.InstancePath, this.m_lastRIFObject.InstancePathItem.Type == InstancePathItemType.SubReport);
                    }
                    bool flag3           = default(bool);
                    int  sharedPathIndex = InstancePathItem.GetSharedPathIndex(num4, lastInstancePath, list, reportObjectModel.AllFieldsCleared, out flag3);
                    for (int i = this.m_specialLastGroupingValues.Count; i < num4; i++)
                    {
                        this.m_specialLastGroupingValues.Add(null);
                    }
                    for (int j = num4; j < num2; j++)
                    {
                        InstancePathItem instancePathItem = list[j];
                        bool             flag4            = false;
                        if (mode != OnDemandMode.InScope)
                        {
                            flag4 = (j <= sharedPathIndex);
                        }
                        if (!flag4 && mode == OnDemandMode.FullSetup)
                        {
                            if (this.m_specialLastGroupingValues.Count < num2)
                            {
                                this.m_specialLastGroupingValues.Add(null);
                            }
                            else
                            {
                                this.m_specialLastGroupingValues[j] = null;
                            }
                        }
                        switch (instancePathItem.Type)
                        {
                        case InstancePathItemType.SubReport:
                            if (scopeInstance.SubreportInstances != null && instancePathItem.IndexInCollection < scopeInstance.SubreportInstances.Count)
                            {
                                IReference <AspNetCore.ReportingServices.ReportIntermediateFormat.SubReportInstance> reference = scopeInstance.SubreportInstances[instancePathItem.IndexInCollection];
                                using (reference.PinValue())
                                {
                                    AspNetCore.ReportingServices.ReportIntermediateFormat.SubReportInstance subReportInstance = reference.Value();
                                    subReportInstance.SubReportDef.CurrentSubReportInstance = reference;
                                    if (mode != OnDemandMode.InScope && !subReportInstance.Initialized)
                                    {
                                        if (base.m_odpContext.IsTablixProcessingMode || base.m_odpContext.IsTopLevelSubReportProcessing)
                                        {
                                            return;
                                        }
                                        SubReportInitializer.InitializeSubReport(subReportInstance.SubReportDef);
                                        reference.PinValue();
                                    }
                                    Global.Tracer.Assert(j == num2 - 1, "SubReport not last in instance path.");
                                }
                            }
                            goto default;

                        case InstancePathItemType.DataRegion:
                            if (scopeInstance is AspNetCore.ReportingServices.ReportIntermediateFormat.ReportInstance && (scopeInstance.DataRegionInstances == null || scopeInstance.DataRegionInstances.Count <= instancePathItem.IndexInCollection || scopeInstance.DataRegionInstances[instancePathItem.IndexInCollection] == null || scopeInstance.DataRegionInstances[instancePathItem.IndexInCollection].Value() == null))
                            {
                                Global.Tracer.Assert(instancePathItem.IndexInCollection < reportDefinition.TopLevelDataRegions.Count, "(newItem.IndexInCollection < m_reportDefinition.TopLevelDataRegions.Count)");
                                AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = reportDefinition.TopLevelDataRegions[instancePathItem.IndexInCollection];
                                AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet    dataSet    = dataRegion.GetDataSet(reportDefinition);
                                if (mode == OnDemandMode.InScope && this.InScopeCompare(dataSet.Name, scopeName))
                                {
                                    return;
                                }
                                this.PerformOnDemandTablixProcessing(dataSet);
                            }
                            scopeInstance      = scopeInstance.DataRegionInstances[instancePathItem.IndexInCollection].Value();
                            flag               = (this.m_inRecursiveColumnHierarchy = false);
                            flag2              = (this.m_inRecursiveRowHierarchy = false);
                            num                = -1;
                            dataRegionInstance = (scopeInstance as AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegionInstance);
                            memberHierarchy    = dataRegionInstance;
                            if (mode == OnDemandMode.InScope && this.InScopeCompare(dataRegionInstance.DataRegionDef.Name, scopeName))
                            {
                                return;
                            }
                            if (dataRegionInstance.DataSetIndexInCollection >= 0 && base.m_odpContext.CurrentDataSetIndex != dataRegionInstance.DataSetIndexInCollection && mode != OnDemandMode.InScope)
                            {
                                if (!flag4)
                                {
                                    AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance = base.m_odpContext.CurrentReportInstance.GetDataSetInstance(dataRegionInstance.DataSetIndexInCollection, base.m_odpContext);
                                    if (dataSetInstance != null)
                                    {
                                        dataSetInstance.SetupEnvironment(base.m_odpContext, true);
                                        num3 = 0;
                                    }
                                }
                                else
                                {
                                    num3 = j + 1;
                                }
                            }
                            if (mode != OnDemandMode.InScope)
                            {
                                if (!flag4)
                                {
                                    dataRegionInstance.SetupEnvironment(base.m_odpContext);
                                    num3 = 0;
                                    if (!dataRegionInstance.NoRows)
                                    {
                                        dataRegionInstance.DataRegionDef.NoRows = false;
                                        goto default;
                                    }
                                    dataRegionInstance.DataRegionDef.NoRows = true;
                                    dataRegionInstance.DataRegionDef.ResetTopLevelDynamicMemberInstanceCount();
                                    return;
                                }
                                num3 = j + 1;
                            }
                            goto default;

                        case InstancePathItemType.ColumnMemberInstanceIndexTopMost:
                            scopeInstance = dataRegionInstance;
                            goto default;

                        case InstancePathItemType.Cell:
                        {
                            if (-1 == num)
                            {
                                num = 0;
                            }
                            IList <AspNetCore.ReportingServices.ReportIntermediateFormat.DataCellInstance> cellInstances = memberHierarchy.GetCellInstances(num);
                            if (cellInstances == null)
                            {
                                if (flag2 && flag)
                                {
                                    reportObjectModel.ResetFieldValues();
                                }
                            }
                            else if (cellInstances.Count > instancePathItem.IndexInCollection)
                            {
                                AspNetCore.ReportingServices.ReportIntermediateFormat.DataCellInstance dataCellInstance = cellInstances[instancePathItem.IndexInCollection];
                                if (dataCellInstance != null)
                                {
                                    scopeInstance = dataCellInstance;
                                    if (!flag4)
                                    {
                                        dataCellInstance.SetupEnvironment(base.m_odpContext, base.m_odpContext.CurrentDataSetIndex);
                                        num3 = 0;
                                    }
                                    else
                                    {
                                        num3 = j + 1;
                                    }
                                }
                            }
                            goto default;
                        }

                        default:
                            if (instancePathItem.IsDynamicMember)
                            {
                                IList <DataRegionMemberInstance> childMemberInstances = ((IMemberHierarchy)scopeInstance).GetChildMemberInstances(instancePathItem.Type == InstancePathItemType.RowMemberInstanceIndex, instancePathItem.IndexInCollection);
                                if (childMemberInstances == null)
                                {
                                    reportObjectModel.ResetFieldValues();
                                    return;
                                }
                                int num5 = (j != num2 - 1 || moveNextInstanceIndex < 0 || moveNextInstanceIndex >= childMemberInstances.Count) ? ((instancePathItem.InstanceIndex >= 0) ? instancePathItem.InstanceIndex : 0) : moveNextInstanceIndex;
                                if (num5 >= childMemberInstances.Count)
                                {
                                    instancePathItem.ResetContext();
                                    num5 = 0;
                                }
                                DataRegionMemberInstance dataRegionMemberInstance = childMemberInstances[num5];
                                if (mode == OnDemandMode.FullSetup)
                                {
                                    dataRegionMemberInstance.MemberDef.InstanceCount      = childMemberInstances.Count;
                                    dataRegionMemberInstance.MemberDef.CurrentMemberIndex = num5;
                                }
                                scopeInstance             = dataRegionMemberInstance;
                                this.m_lastRecursiveLevel = dataRegionMemberInstance.RecursiveLevel;
                                AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode memberDef = dataRegionMemberInstance.MemberDef;
                                if (mode == OnDemandMode.InScope && this.InScopeCompare(memberDef.Grouping.Name, scopeName))
                                {
                                    return;
                                }
                                if (instancePathItem.Type == InstancePathItemType.RowMemberInstanceIndex)
                                {
                                    memberHierarchy = dataRegionMemberInstance;
                                    flag2           = true;
                                }
                                else
                                {
                                    num  = dataRegionMemberInstance.MemberInstanceIndexWithinScopeLevel;
                                    flag = true;
                                }
                                if (mode == OnDemandMode.FullSetup && !flag4)
                                {
                                    dataRegionMemberInstance.SetupEnvironment(base.m_odpContext, base.m_odpContext.CurrentDataSetIndex);
                                    num3 = 0;
                                    AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = memberDef.Grouping;
                                    if (grouping.Parent != null)
                                    {
                                        if (memberDef.IsColumn)
                                        {
                                            this.m_inRecursiveColumnHierarchy = true;
                                        }
                                        else
                                        {
                                            this.m_inRecursiveRowHierarchy = true;
                                        }
                                        if (memberDef.IsTablixMember)
                                        {
                                            memberDef.SetMemberInstances(childMemberInstances);
                                            memberDef.SetRecursiveParentIndex(dataRegionMemberInstance.RecursiveParentIndex);
                                            memberDef.SetInstanceHasRecursiveChildren(dataRegionMemberInstance.HasRecursiveChildren);
                                        }
                                    }
                                    else if (memberDef.IsColumn)
                                    {
                                        this.m_inRecursiveColumnHierarchy = false;
                                    }
                                    else
                                    {
                                        this.m_inRecursiveRowHierarchy = false;
                                    }
                                    grouping.RecursiveLevel = this.m_lastRecursiveLevel;
                                    grouping.SetGroupInstanceExpressionValues(dataRegionMemberInstance.GroupExprValues);
                                    if (mode == OnDemandMode.FullSetup && grouping != null && grouping.GroupExpressions != null && grouping.GroupExpressions.Count > 0)
                                    {
                                        AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo expressionInfo = grouping.GroupExpressions[0];
                                        if (expressionInfo.Type == AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Field)
                                        {
                                            AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet2 = memberDef.DataRegionDef.GetDataSet(reportDefinition);
                                            AspNetCore.ReportingServices.ReportIntermediateFormat.Field   field    = dataSet2.Fields[expressionInfo.IntValue];
                                            if (field.DataField != null)
                                            {
                                                string dataField = field.DataField;
                                                object second    = dataRegionMemberInstance.GroupExprValues[0];
                                                PairObj <string, object> pairObj = this.m_specialLastGroupingValues[j];
                                                if (pairObj == null)
                                                {
                                                    pairObj = new PairObj <string, object>(dataField, second);
                                                    this.m_specialLastGroupingValues[j] = pairObj;
                                                }
                                                else
                                                {
                                                    pairObj.First  = dataField;
                                                    pairObj.Second = second;
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    num3 = j + 1;
                                }
                            }
                            break;

                        case InstancePathItemType.None:
                            break;
                        }
                    }
                    if (mode == OnDemandMode.FullSetup && !flag3 && scopeInstance != null && num3 > 0)
                    {
                        while (num3 < this.m_lastInstancePath.Count)
                        {
                            if (!this.m_lastInstancePath[num3].IsScope)
                            {
                                num3++;
                                continue;
                            }
                            scopeInstance.SetupFields(base.m_odpContext, base.m_odpContext.CurrentDataSetIndex);
                            break;
                        }
                    }
                    if (mode == OnDemandMode.FullSetup && !base.m_odpContext.IsTablixProcessingMode && base.m_odpContext.CurrentReportInstance != null && dataRegionInstance == null && reportDefinition.DataSetsNotOnlyUsedInParameters == 1)
                    {
                        AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet         firstDataSet     = reportDefinition.FirstDataSet;
                        AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance2 = base.m_odpContext.CurrentReportInstance.GetDataSetInstance(firstDataSet, base.m_odpContext);
                        if (dataSetInstance2 != null)
                        {
                            bool flag5 = true;
                            if (!base.m_odpContext.IsTablixProcessingComplete(firstDataSet.IndexInCollection))
                            {
                                this.PerformOnDemandTablixProcessing(firstDataSet);
                                flag5 = false;
                            }
                            if (base.m_odpContext.CurrentOdpDataSetInstance == dataSetInstance2)
                            {
                                flag5 = false;
                            }
                            if (flag5)
                            {
                                dataSetInstance2.SetupEnvironment(base.m_odpContext, true);
                            }
                            else if (!dataSetInstance2.NoRows)
                            {
                                dataSetInstance2.SetupFields(base.m_odpContext, dataSetInstance2);
                            }
                        }
                    }
                }
            }
            finally
            {
                if (needDeepCopyPath)
                {
                    InstancePathItem.DeepCopyPath(list, ref this.m_lastInstancePath);
                }
            }
        }
 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);
 }
Пример #12
0
        public RecordSetInfo(bool readerExtensionsSupported, bool persistCalculatedFields, DataSetInstance dataSetInstance, DateTime reportExecutionTime)
        {
            this.m_readerExtensionsSupported = readerExtensionsSupported;
            this.m_compareOptions            = dataSetInstance.DataSetDef.GetCLRCompareOptions();
            this.m_commandText          = dataSetInstance.CommandText;
            this.m_rewrittenCommandText = dataSetInstance.RewrittenCommandText;
            this.m_cultureName          = dataSetInstance.DataSetDef.CreateCultureInfoFromLcid().Name;
            this.m_executionTime        = dataSetInstance.GetQueryExecutionTime(reportExecutionTime);
            int count = dataSetInstance.DataSetDef.Fields.Count;

            if (count > 0)
            {
                int num = 0;
                if (persistCalculatedFields)
                {
                    this.m_fieldNames = new string[count];
                }
                else
                {
                    this.m_fieldNames = new string[dataSetInstance.DataSetDef.NonCalculatedFieldCount];
                }
                for (int i = 0; i < count; i++)
                {
                    if (persistCalculatedFields || !dataSetInstance.DataSetDef.Fields[i].IsCalculatedField)
                    {
                        this.m_fieldNames[num++] = dataSetInstance.DataSetDef.Fields[i].Name;
                    }
                }
            }
        }
Пример #13
0
 public abstract IRecordRowReader CreateSequentialDataReader(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, out AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance);
Пример #14
0
        public void SetupFields(OnDemandProcessingContext odpContext, int dataSetIndex)
        {
            DataSetInstance dataSetInstance = odpContext.CurrentReportInstance.GetDataSetInstance(dataSetIndex, odpContext);

            this.SetupFields(odpContext, dataSetInstance);
        }
        public override IRecordRowReader CreateSequentialDataReader(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, out AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance)
        {
            LiveRecordRowReader liveRecordRowReader = new LiveRecordRowReader(dataSet, base.m_odpContext);

            dataSetInstance = liveRecordRowReader.DataSetInstance;
            base.RegisterDisposableDataReaderOrIdcDataManager(liveRecordRowReader);
            return(liveRecordRowReader);
        }
Пример #16
0
 public override IRecordRowReader CreateSequentialDataReader(AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet, out AspNetCore.ReportingServices.ReportIntermediateFormat.DataSetInstance dataSetInstance)
 {
     this.FireAssert("CreateSequentialDataReader");
     throw new InvalidOperationException("This method is not valid for this StateManager type.");
 }
Пример #17
0
 private static void TraceDataSetInstance(DataSetInstance instance, int level)
 {
     Global.Tracer.Assert(null != instance, "(null != instance)");
     Global.Tracer.Trace("{0}DataSet={1}, NoRows={2}, RowCount={3}, Lcid={4}, CS={5}, AS={6}, KS={7}, WS={8}, CommandText={9}", GroupTreeTracer.GetEmptyString(level), (instance.DataSetDef != null) ? instance.DataSetDef.Name : null, instance.NoRows, instance.RecordSetSize, instance.LCID, instance.CaseSensitivity.ToString(), instance.AccentSensitivity.ToString(), instance.KanatypeSensitivity.ToString(), instance.WidthSensitivity.ToString(), instance.RewrittenCommandText);
     GroupTreeTracer.TraceScopeInstance(instance, level);
 }