private void SaveGeneratedReportItemInstance() { if (this.m_dynamicWidth == null && this.m_dynamicHeight == null) { OnDemandProcessingContext odpContext = base.RenderingContext.OdpContext; AspNetCore.ReportingServices.ReportIntermediateFormat.ReportSnapshot reportSnapshot = odpContext.OdpMetadata.ReportSnapshot; IChunkFactory chunkFactory = odpContext.ChunkFactory; if (this.CriDef.RepeatWith == null) { string text = CustomReportItem.CreateChunkName(); using (Stream stream = chunkFactory.CreateChunk(text, AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.ReportChunkTypes.GeneratedReportItems, null)) { new IntermediateFormatWriter(stream, odpContext.GetActiveCompatibilityVersion()).Write(this.m_generatedReportItem.Instance); stream.Flush(); } reportSnapshot.AddGeneratedReportItemChunkName(this.GetGeneratedInstanceChunkKey(), text); } else { ImageInstance imageInstance = (ImageInstance)this.m_generatedReportItem.Instance; string text = imageInstance.StreamName = ImageHelper.StoreImageDataInChunk(AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.ReportChunkTypes.Image, imageInstance.ImageData, imageInstance.MIMEType, base.RenderingContext.OdpContext.OdpMetadata, base.RenderingContext.OdpContext.ChunkFactory); reportSnapshot.AddImageChunkName(this.GetGeneratedInstanceChunkKey(), text); } } }
public override void ConstructReportItemDefinition() { base.ConstructReportItemDefinitionImpl(); ImageInstance imageInstance = this.ImageInstance; Global.Tracer.Assert(imageInstance != null, "(instance != null)"); if (imageInstance.MIMEType != null) { this.ImageDef.MIMEType = AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.CreateConstExpression(imageInstance.MIMEType); } else { this.ImageDef.MIMEType = AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.CreateEmptyExpression(); } this.m_mimeType = null; if (imageInstance.ImageData != null || imageInstance.StreamName != null) { Global.Tracer.Assert(false, "Runtime construction of images with constant Image.Value is not supported."); } else { this.ImageDef.Value = AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.CreateEmptyExpression(); } this.m_value = null; if (!this.ActionInfo.ConstructActionDefinition()) { this.ImageDef.Action = null; this.m_actionInfo = null; } }
public override void CompleteCriGeneratedInstanceEvaluation() { Global.Tracer.Assert(base.CriGenerationPhase == CriGenerationPhases.Instance, "(CriGenerationPhase == CriGenerationPhases.Instance)"); ImageInstance imageInstance = this.ImageInstance; Global.Tracer.Assert(imageInstance != null, "(instance != null)"); if (imageInstance.ActionInfoWithDynamicImageMapAreas != null) { base.CriGenerationPhase = CriGenerationPhases.Definition; imageInstance.ActionInfoWithDynamicImageMapAreas.ConstructDefinitions(); base.CriGenerationPhase = CriGenerationPhases.Instance; } }
private void Visit(AspNetCore.ReportingServices.OnDemandReportRendering.ReportItem item) { if (item != null && item.Instance != null) { bool generateDocMap = this.m_generateDocMap; if (this.ProcessVisibilityAndContinue(item.Visibility, item.Instance.Visibility, null)) { if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Line || item is AspNetCore.ReportingServices.OnDemandReportRendering.Chart || item is AspNetCore.ReportingServices.OnDemandReportRendering.GaugePanel || item is AspNetCore.ReportingServices.OnDemandReportRendering.Map) { this.GenerateSimpleReportItemDocumentMap(item); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.TextBox) { this.GenerateSimpleReportItemDocumentMap(item); this.VisitStyle(item.Style); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Image) { this.GenerateSimpleReportItemDocumentMap(item); AspNetCore.ReportingServices.OnDemandReportRendering.Image image = item as AspNetCore.ReportingServices.OnDemandReportRendering.Image; AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType source = image.Source; if (this.m_createSnapshot && (source == AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.External || source == AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Database)) { AspNetCore.ReportingServices.OnDemandReportRendering.ImageInstance imageInstance = image.Instance as AspNetCore.ReportingServices.OnDemandReportRendering.ImageInstance; if (imageInstance != null) { byte[] imageDatum = imageInstance.ImageData; } } } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle) { this.VisitRectangle(item as AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle); this.VisitStyle(item.Style); } else if (!(item is AspNetCore.ReportingServices.OnDemandReportRendering.CustomReportItem)) { bool flag = false; if (this.m_generateDocMap) { string documentMapLabel = item.Instance.DocumentMapLabel; if (documentMapLabel != null) { flag = true; this.WriteDocumentMapBeginContainer(documentMapLabel, item.Instance.UniqueName); } } if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Tablix) { this.VisitTablix(item as AspNetCore.ReportingServices.OnDemandReportRendering.Tablix); this.VisitStyle(item.Style); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.SubReport) { this.VisitSubReport(item as AspNetCore.ReportingServices.OnDemandReportRendering.SubReport); } else { Global.Tracer.Assert(false); } if (flag) { this.WriteDocumentMapEndContainer(); } } this.m_generateDocMap = generateDocMap; } } }