private static List <Declaration> GetDataChunkDeclarations() { List <Declaration> list = new List <Declaration>(4); list.Add(RecordSetInfo.GetDeclaration()); list.Add(RecordRow.GetDeclaration()); list.Add(RecordField.GetDeclaration()); list.Add(RecordSetPropertyNames.GetDeclaration()); return(list); }
public void CreateDataChunkAndWriteHeader(RecordSetInfo recordSetInfo) { if (this.m_chunkStream == null) { this.m_recordSetInfo = recordSetInfo; this.m_chunkStream = this.m_reportChunkFactory.CreateChunk(this.m_dataSetChunkName, AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.ReportChunkTypes.Data, null); this.m_chunkWriter = new IntermediateFormatWriter(this.m_chunkStream, DataChunkWriter.m_DataChunkDeclarations, this, this.m_odpContext.GetActiveCompatibilityVersion(), this.m_odpContext.ProhibitSerializableValues); this.m_chunkWriter.Value.Write(this.m_recordSetInfo); } }
internal void CreateDataChunkAndWriteHeader(RecordSetInfo recordSetInfo) { if (m_chunkStream == null) { m_recordSetInfo = recordSetInfo; m_chunkStream = m_reportChunkFactory.CreateChunk(m_dataSetChunkName, Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ReportChunkTypes.Data, null); m_chunkWriter = new IntermediateFormatWriter(m_chunkStream, m_DataChunkDeclarations, this, m_odpContext.GetActiveCompatibilityVersion(), m_odpContext.ProhibitSerializableValues); m_chunkWriter.Value.Write(m_recordSetInfo); } }
private static List <Declaration> GetDataChunkDeclarations() { return(new List <Declaration>(4) { RecordSetInfo.GetDeclaration(), RecordRow.GetDeclaration(), RecordField.GetDeclaration(), RecordSetPropertyNames.GetDeclaration() }); }
public static void OverrideWithDataReaderSettings(RecordSetInfo recordSetInfo, OnDemandProcessingContext odpContext, DataSetInstance dataSetInstance, DataSetCore dataSetCore) { if (recordSetInfo != null) { dataSetCore.MergeCollationSettings(null, null, recordSetInfo.CultureName, (recordSetInfo.CompareOptions & CompareOptions.IgnoreCase) == CompareOptions.None, (recordSetInfo.CompareOptions & CompareOptions.IgnoreNonSpace) == CompareOptions.None, (recordSetInfo.CompareOptions & CompareOptions.IgnoreKanaType) == CompareOptions.None, (recordSetInfo.CompareOptions & CompareOptions.IgnoreWidth) == CompareOptions.None); odpContext.SetComparisonInformation(dataSetCore); odpContext.ReportObjectModel.FieldsImpl.ReaderExtensionsSupported = recordSetInfo.ReaderExtensionsSupported; odpContext.ReportObjectModel.FieldsImpl.ReaderFieldProperties = (recordSetInfo != null && null != recordSetInfo.FieldPropertyNames); dataSetInstance.CommandText = recordSetInfo.CommandText; dataSetInstance.RewrittenCommandText = recordSetInfo.RewrittenCommandText; dataSetInstance.SetQueryExecutionTime(recordSetInfo.ExecutionTime); } }
internal DataChunkWriter(RecordSetInfo recordSetInfo, DataSetInstance dataSetInstance, OnDemandProcessingContext odpContext) { Global.Tracer.Assert(odpContext.ChunkFactory != null, "(null != context.ChunkFactory)"); m_reportChunkFactory = odpContext.ChunkFactory; m_recordSetInfo = recordSetInfo; m_odpContext = odpContext; if (odpContext.IsSharedDataSetExecutionOnly) { m_dataSetChunkName = (odpContext.ExternalDataSetContext.TargetChunkNameInSnapshot ?? "SharedDataSet"); return; } m_dataSetChunkName = GenerateDataChunkName(dataSetInstance, odpContext); odpContext.OdpMetadata.AddDataChunk(m_dataSetChunkName, dataSetInstance); }
public DataChunkWriter(RecordSetInfo recordSetInfo, DataSetInstance dataSetInstance, OnDemandProcessingContext odpContext) { Global.Tracer.Assert(null != odpContext.ChunkFactory, "(null != context.ChunkFactory)"); this.m_reportChunkFactory = odpContext.ChunkFactory; this.m_recordSetInfo = recordSetInfo; this.m_odpContext = odpContext; if (odpContext.IsSharedDataSetExecutionOnly) { this.m_dataSetChunkName = (odpContext.ExternalDataSetContext.TargetChunkNameInSnapshot ?? "SharedDataSet"); } else { this.m_dataSetChunkName = ChunkManager.GenerateDataChunkName(dataSetInstance, odpContext); odpContext.OdpMetadata.AddDataChunk(this.m_dataSetChunkName, dataSetInstance); } }
private void Dispose(bool disposing) { if (disposing) { if (this.m_chunkReader.HasValue) { this.m_chunkReader = null; } if (this.m_chunkStream != null) { this.m_chunkStream.Close(); this.m_chunkStream = null; } } this.m_recordRow = null; this.m_recordSetInfo = null; }
protected override void InitializeBeforeProcessingRows(bool aReaderExtensionsSupported) { if (!base.m_dataSet.IsReferenceToSharedDataSet) { if (base.m_dataReader != null) { this.m_recordSetInfo = base.m_dataReader.RecordSetInfo; } else { this.m_recordSetInfo = new RecordSetInfo(aReaderExtensionsSupported, base.m_odpContext.IsSharedDataSetExecutionOnly, base.m_dataSetInstance, base.m_odpContext.ExecutionTime); } if (this.m_canWriteDataChunk) { this.m_dataChunkWriter = new ChunkManager.DataChunkWriter(this.m_recordSetInfo, base.m_dataSetInstance, base.m_odpContext); } } }
internal DataChunkReader(DataSetInstance dataSetInstance, OnDemandProcessingContext context, string chunkName) { m_recordSetSize = dataSetInstance.RecordSetSize; Global.Tracer.Assert(context.ChunkFactory != null && !string.IsNullOrEmpty(chunkName), "null != context.ChunkFactory && !String.IsNullOrEmpty(chunkName)"); m_chunkStream = context.ChunkFactory.GetChunk(chunkName, Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ReportChunkTypes.Data, ChunkMode.Open, out string _); Global.Tracer.Assert(m_chunkStream != null, "Missing Expected DataChunk with name: {0}", chunkName); m_chunkReader = new IntermediateFormatReader(m_chunkStream, default(DataReaderRIFObjectCreator)); m_recordSetInfo = (RecordSetInfo)m_chunkReader.Value.ReadRIFObject(); if (context.IsSharedDataSetExecutionOnly || dataSetInstance.DataSetDef.IsReferenceToSharedDataSet) { CreateDataChunkFieldMapping(dataSetInstance, m_recordSetInfo, context.IsSharedDataSetExecutionOnly, out m_mappingIdentical, out m_mappingDataSetFieldIndexesToDataChunk); } m_firstRow = m_chunkStream.Position; if (-1 == m_recordSetSize) { m_streamLength = m_chunkStream.Length; Global.Tracer.Assert(m_streamLength >= m_firstRow, "(m_streamLength >= m_firstRow)"); } }
internal ProcessingDataReader(DataSetInstance dataSetInstance, DataSet dataSet, OnDemandProcessingContext odpContext, bool overrideWithSharedDataSetChunkSettings) { if (odpContext.IsSharedDataSetExecutionOnly) { m_dataSnapshotReader = new ChunkManager.DataChunkReader(dataSetInstance, odpContext, odpContext.ExternalDataSetContext.CachedDataChunkName); } else { m_dataSnapshotReader = odpContext.GetDataChunkReader(dataSet.IndexInCollection); } m_recordSetInfo = m_dataSnapshotReader.RecordSetInfo; m_dataSnapshotReader.MoveToFirstRow(); if (overrideWithSharedDataSetChunkSettings) { OverrideWithDataReaderSettings(odpContext, dataSetInstance, dataSet.DataSetCore); } else { OverrideDataCacheCompareOptions(ref odpContext); } }
public IPersistable CreateRIFObject(ObjectType objectType, ref IntermediateFormatReader context) { IPersistable persistable = null; if (objectType == ObjectType.Null) { return(null); } switch (objectType) { case ObjectType.RecordSetInfo: persistable = new RecordSetInfo(); break; case ObjectType.RecordRow: persistable = new RecordRow(); break; case ObjectType.RecordField: persistable = new RecordField(); break; case ObjectType.IntermediateFormatVersion: persistable = new IntermediateFormatVersion(); break; case ObjectType.RecordSetPropertyNames: persistable = new RecordSetPropertyNames(); break; default: Global.Tracer.Assert(false); break; } persistable.Deserialize(context); return(persistable); }
internal ProcessingDataReader(OnDemandProcessingContext odpContext, DataSetInstance dataSetInstance, string dataSetName, IDataReader sourceReader, bool hasServerAggregateMetadata, string[] aliases, string[] names, DataSourceErrorInspector errorInspector) { m_recordSetInfo = new RecordSetInfo(hasServerAggregateMetadata, odpContext.IsSharedDataSetExecutionOnly, dataSetInstance, odpContext.ExecutionTime); m_dataSourceDataReader = new MappingDataReader(dataSetName, sourceReader, aliases, names, errorInspector); }
private static DeclarationList CreateCurrentDeclarations() { DeclarationList declarationList = new DeclarationList(); int num = 1; declarationList[num++] = IDOwner.GetDeclaration(); declarationList[num++] = ReportItem.GetDeclaration(); num++; declarationList[num++] = Report.GetDeclaration(); declarationList[num++] = PageSection.GetDeclaration(); declarationList[num++] = Line.GetDeclaration(); declarationList[num++] = Rectangle.GetDeclaration(); declarationList[num++] = Image.GetDeclaration(); num++; declarationList[num++] = CheckBox.GetDeclaration(); declarationList[num++] = TextBox.GetDeclaration(); declarationList[num++] = SubReport.GetDeclaration(); declarationList[num++] = ActiveXControl.GetDeclaration(); declarationList[num++] = DataRegion.GetDeclaration(); num++; declarationList[num++] = ReportHierarchyNode.GetDeclaration(); declarationList[num++] = Grouping.GetDeclaration(); declarationList[num++] = Sorting.GetDeclaration(); declarationList[num++] = List.GetDeclaration(); declarationList[num++] = Pivot.GetDeclaration(); declarationList[num++] = Matrix.GetDeclaration(); declarationList[num++] = PivotHeading.GetDeclaration(); declarationList[num++] = MatrixHeading.GetDeclaration(); declarationList[num++] = MatrixColumn.GetDeclaration(); num++; declarationList[num++] = MatrixRow.GetDeclaration(); num++; declarationList[num++] = Subtotal.GetDeclaration(); declarationList[num++] = Table.GetDeclaration(); declarationList[num++] = TableColumn.GetDeclaration(); num++; declarationList[num++] = TableGroup.GetDeclaration(); declarationList[num++] = TableRow.GetDeclaration(); num++; declarationList[num++] = OWCChart.GetDeclaration(); declarationList[num++] = ChartColumn.GetDeclaration(); num++; declarationList[num++] = ReportItemCollection.GetDeclaration(); declarationList[num++] = ReportItemIndexer.GetDeclaration(); num++; declarationList[num++] = Style.GetDeclaration(); num++; declarationList[num++] = AttributeInfo.GetDeclaration(); declarationList[num++] = Visibility.GetDeclaration(); declarationList[num++] = ExpressionInfo.GetDeclaration(); num++; declarationList[num++] = DataAggregateInfo.GetDeclaration(); num++; declarationList[num++] = RunningValueInfo.GetDeclaration(); num++; num++; declarationList[num++] = Filter.GetDeclaration(); num++; declarationList[num++] = DataSource.GetDeclaration(); num++; declarationList[num++] = DataSet.GetDeclaration(); num++; declarationList[num++] = ReportQuery.GetDeclaration(); declarationList[num++] = Field.GetDeclaration(); num++; declarationList[num++] = ParameterValue.GetDeclaration(); num++; num++; num++; num++; declarationList[num++] = ReportSnapshot.GetDeclaration(); declarationList[num++] = SenderInformation.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); declarationList[num++] = ReceiverInformation.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); declarationList[num++] = DocumentMapNode.GetDeclaration(); declarationList[num++] = InfoBase.GetDeclaration(); declarationList[num++] = OffsetInfo.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); declarationList[num++] = ReportItemInstanceInfo.GetDeclaration(); declarationList[num++] = ReportInstanceInfo.GetDeclaration(); declarationList[num++] = ReportItemColInstanceInfo.GetDeclaration(); declarationList[num++] = LineInstanceInfo.GetDeclaration(); declarationList[num++] = TextBoxInstanceInfo.GetDeclaration(); declarationList[num++] = RectangleInstanceInfo.GetDeclaration(); declarationList[num++] = CheckBoxInstanceInfo.GetDeclaration(); declarationList[num++] = ImageInstanceInfo.GetDeclaration(); declarationList[num++] = SubReportInstanceInfo.GetDeclaration(); declarationList[num++] = ActiveXControlInstanceInfo.GetDeclaration(); declarationList[num++] = ListInstanceInfo.GetDeclaration(); declarationList[num++] = ListContentInstanceInfo.GetDeclaration(); declarationList[num++] = MatrixInstanceInfo.GetDeclaration(); declarationList[num++] = MatrixHeadingInstanceInfo.GetDeclaration(); declarationList[num++] = MatrixCellInstanceInfo.GetDeclaration(); declarationList[num++] = TableInstanceInfo.GetDeclaration(); declarationList[num++] = TableGroupInstanceInfo.GetDeclaration(); declarationList[num++] = TableRowInstanceInfo.GetDeclaration(); declarationList[num++] = OWCChartInstanceInfo.GetDeclaration(); declarationList[num++] = ChartInstanceInfo.GetDeclaration(); declarationList[num++] = NonComputedUniqueNames.GetDeclaration(); declarationList[num++] = InstanceInfoOwner.GetDeclaration(); declarationList[num++] = ReportItemInstance.GetDeclaration(); num++; declarationList[num++] = ReportInstance.GetDeclaration(); declarationList[num++] = ReportItemColInstance.GetDeclaration(); declarationList[num++] = LineInstance.GetDeclaration(); declarationList[num++] = TextBoxInstance.GetDeclaration(); declarationList[num++] = RectangleInstance.GetDeclaration(); declarationList[num++] = CheckBoxInstance.GetDeclaration(); declarationList[num++] = ImageInstance.GetDeclaration(); declarationList[num++] = SubReportInstance.GetDeclaration(); declarationList[num++] = ActiveXControlInstance.GetDeclaration(); declarationList[num++] = ListInstance.GetDeclaration(); declarationList[num++] = ListContentInstance.GetDeclaration(); num++; declarationList[num++] = MatrixInstance.GetDeclaration(); declarationList[num++] = MatrixHeadingInstance.GetDeclaration(); num++; declarationList[num++] = MatrixCellInstance.GetDeclaration(); num++; num++; declarationList[num++] = TableInstance.GetDeclaration(); declarationList[num++] = TableRowInstance.GetDeclaration(); declarationList[num++] = TableColumnInstance.GetDeclaration(); declarationList[num++] = TableGroupInstance.GetDeclaration(); num++; declarationList[num++] = OWCChartInstance.GetDeclaration(); declarationList[num++] = ParameterInfo.GetDeclaration(); num++; num++; num++; declarationList[num++] = InstanceInfo.GetDeclaration(); num++; declarationList[num++] = RecordSetInfo.GetDeclaration(); declarationList[num++] = RecordRow.GetDeclaration(); declarationList[num++] = RecordField.GetDeclaration(); declarationList[num++] = ValidValue.GetDeclaration(); num++; declarationList[num++] = ParameterDataSource.GetDeclaration(); declarationList[num++] = ParameterDef.GetDeclaration(); num++; declarationList[num++] = ParameterBase.GetDeclaration(); num++; declarationList[num++] = ProcessingMessage.GetDeclaration(); declarationList[num++] = MatrixSubtotalHeadingInstanceInfo.GetDeclaration(); declarationList[num++] = MatrixSubtotalCellInstance.GetDeclaration(); declarationList[num++] = CodeClass.GetDeclaration(); num++; declarationList[num++] = TableDetail.GetDeclaration(); declarationList[num++] = TableDetailInstance.GetDeclaration(); num++; declarationList[num++] = TableDetailInstanceInfo.GetDeclaration(); num++; declarationList[num++] = Action.GetDeclaration(); declarationList[num++] = ActionInstance.GetDeclaration(); declarationList[num++] = Chart.GetDeclaration(); declarationList[num++] = ChartHeading.GetDeclaration(); declarationList[num++] = ChartDataPoint.GetDeclaration(); num++; declarationList[num++] = MultiChart.GetDeclaration(); declarationList[num++] = MultiChartInstance.GetDeclaration(); num++; declarationList[num++] = Axis.GetDeclaration(); declarationList[num++] = AxisInstance.GetDeclaration(); declarationList[num++] = ChartTitle.GetDeclaration(); declarationList[num++] = ChartTitleInstance.GetDeclaration(); declarationList[num++] = ThreeDProperties.GetDeclaration(); declarationList[num++] = PlotArea.GetDeclaration(); declarationList[num++] = Legend.GetDeclaration(); declarationList[num++] = GridLines.GetDeclaration(); declarationList[num++] = ChartDataLabel.GetDeclaration(); declarationList[num++] = ChartInstance.GetDeclaration(); declarationList[num++] = ChartHeadingInstance.GetDeclaration(); declarationList[num++] = ChartHeadingInstanceInfo.GetDeclaration(); num++; declarationList[num++] = ChartDataPointInstance.GetDeclaration(); declarationList[num++] = ChartDataPointInstanceInfo.GetDeclaration(); num++; num++; declarationList[num++] = RenderingPagesRanges.GetDeclaration(); num++; declarationList[num++] = IntermediateFormatVersion.GetDeclaration(); declarationList[num++] = ImageInfo.GetDeclaration(); declarationList[num++] = ActionItem.GetDeclaration(); declarationList[num++] = ActionItemInstance.GetDeclaration(); num++; num++; declarationList[num++] = DataValue.GetDeclaration(); declarationList[num++] = DataValueInstance.GetDeclaration(); num++; num++; declarationList[num++] = Tablix.GetDeclaration(); declarationList[num++] = TablixHeading.GetDeclaration(); declarationList[num++] = CustomReportItem.GetDeclaration(); declarationList[num++] = CustomReportItemInstance.GetDeclaration(); declarationList[num++] = CustomReportItemHeading.GetDeclaration(); declarationList[num++] = CustomReportItemHeadingInstance.GetDeclaration(); num++; num++; num++; num++; declarationList[num++] = CustomReportItemCellInstance.GetDeclaration(); num++; num++; declarationList[num++] = DataValueCRIList.GetDeclaration(); declarationList[num++] = BookmarkInformation.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); declarationList[num++] = DrillthroughInformation.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); num++; declarationList[num++] = CustomReportItemInstanceInfo.GetDeclaration(); declarationList[num++] = ImageMapAreaInstanceList.GetDeclaration(); declarationList[num++] = ImageMapAreaInstance.GetDeclaration(); num++; declarationList[num++] = InstanceInfo.GetDeclaration(); declarationList[num++] = SortFilterEventInfo.GetDeclaration(); declarationList[num++] = EndUserSort.GetDeclaration(); num++; num++; declarationList[num++] = RecordSetPropertyNames.GetDeclaration(); num++; num++; num++; declarationList[num++] = PageSectionInstance.GetDeclaration(); num++; declarationList[num++] = PageSectionInstanceInfo.GetDeclaration(); declarationList[num++] = SimpleTextBoxInstanceInfo.GetDeclaration(); declarationList[num++] = ScopeLookupTable.GetDeclaration(); num++; declarationList[num++] = ReportDrillthroughInfo.GetDeclaration(); declarationList[num++] = InstanceInfo.GetDeclaration(); Global.Tracer.Assert(declarationList.Count == num, "(current.Count == index)"); return(declarationList); }
public static void CreateDataChunkFieldMapping(DataSetInstance currentDataSetInstance, RecordSetInfo recordSetInfo, bool isSharedDataSetExecutionReader, out bool mappingIdentical, out int[] mappingDataSetFieldIndexesToDataChunk) { mappingDataSetFieldIndexesToDataChunk = null; mappingIdentical = true; string[] fieldNames = recordSetInfo.FieldNames; RecordSetPropertyNamesList fieldPropertyNames = recordSetInfo.FieldPropertyNames; List <Field> fields = currentDataSetInstance.DataSetDef.Fields; bool flag = isSharedDataSetExecutionReader; if (fieldNames != null && fields != null) { int num = flag ? currentDataSetInstance.DataSetDef.Fields.Count : currentDataSetInstance.DataSetDef.NonCalculatedFieldCount; if (fieldPropertyNames != null && fieldPropertyNames.Count > 0) { currentDataSetInstance.FieldInfos = new FieldInfo[num]; } mappingIdentical = (fieldNames.Length == num); Dictionary <string, int> dictionary = new Dictionary <string, int>(StringComparer.Ordinal); for (int i = 0; i < fieldNames.Length; i++) { dictionary.Add(fieldNames[i], i); } int count = fields.Count; int num2 = 0; mappingDataSetFieldIndexesToDataChunk = new int[num]; for (int j = 0; j < count; j++) { if (!fields[j].IsCalculatedField || flag) { string key = fields[j].DataField; if (isSharedDataSetExecutionReader || fields[j].IsCalculatedField) { key = fields[j].Name; } int num3 = default(int); if (dictionary.TryGetValue(key, out num3)) { mappingDataSetFieldIndexesToDataChunk[num2] = num3; if (fieldPropertyNames != null && num3 < fieldPropertyNames.Count && fieldPropertyNames[num3] != null) { List <string> propertyNames = fieldPropertyNames.GetPropertyNames(num3); if (propertyNames != null) { currentDataSetInstance.FieldInfos[num2] = new FieldInfo(DataChunkReader.CreateSequentialIndexList(propertyNames.Count), propertyNames); } } if (num2 != num3) { mappingIdentical = false; } } else { mappingDataSetFieldIndexesToDataChunk[num2] = -1; mappingIdentical = false; } num2++; } } } }