示例#1
0
        public override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null;
            RPLDynamicImageProps rPLDynamicImageProps = (RPLDynamicImageProps)nonSharedProps;

            rPLDynamicImageProps.DynamicImageContent = this.LoadDynamicImage(out actionInfoWithDynamicImageMapCollection, pageContext);
        }
示例#2
0
        private Stream LoadDynamicImage(out ActionInfoWithDynamicImageMapCollection actionImageMaps, PageContext pageContext)
        {
            IDynamicImageInstance dynamicImageInstance = (IDynamicImageInstance)base.m_source.Instance;

            dynamicImageInstance.SetDpi(pageContext.DynamicImageDpiX, pageContext.DynamicImageDpiY);
            if (pageContext.IsInSelectiveRendering)
            {
                dynamicImageInstance.SetSize(pageContext.Common.Pagination.PhysicalPageWidth, pageContext.Common.Pagination.PhysicalPageHeight);
            }
            return(dynamicImageInstance.GetImage((DynamicImageInstance.ImageType)(pageContext.EMFDynamicImages ? 1 : 0), out actionImageMaps));
        }
        public override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, RPLWriter rplWriter, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null;
            RPLDynamicImageProps rPLDynamicImageProps = (RPLDynamicImageProps)nonSharedProps;
            string streamName = null;

            System.Drawing.Rectangle empty = System.Drawing.Rectangle.Empty;
            rPLDynamicImageProps.DynamicImageContent       = this.LoadDynamicImage(pageContext, ref streamName, out actionInfoWithDynamicImageMapCollection, out empty);
            rPLDynamicImageProps.ImageConsolidationOffsets = empty;
            rPLDynamicImageProps.StreamName = streamName;
            if (actionInfoWithDynamicImageMapCollection != null)
            {
                rPLDynamicImageProps.ActionImageMapAreas = base.WriteImageMapAreaInstanceCollection(actionInfoWithDynamicImageMapCollection, pageContext);
            }
        }
 private bool HasMatchingDrillthrough(ActionInfoWithDynamicImageMapCollection imageMaps)
 {
     if (imageMaps == null)
     {
         return(false);
     }
     foreach (ActionInfoWithDynamicImageMap imageMap in imageMaps)
     {
         if (HasMatchingDrillthrough(imageMap))
         {
             return(true);
         }
     }
     return(false);
 }
示例#5
0
        public override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null;
            Stream stream = this.LoadDynamicImage(out actionInfoWithDynamicImageMapCollection, pageContext);

            if (stream != null)
            {
                spbifWriter.Write((byte)39);
                spbifWriter.Write((int)stream.Length);
                byte[] array = new byte[4096];
                stream.Position = 0L;
                for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length))
                {
                    spbifWriter.Write(array, 0, num);
                }
            }
        }
        public override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null;
            string text = null;

            System.Drawing.Rectangle empty = System.Drawing.Rectangle.Empty;
            Stream stream = this.LoadDynamicImage(pageContext, ref text, out actionInfoWithDynamicImageMapCollection, out empty);

            if (text != null)
            {
                spbifWriter.Write((byte)40);
                spbifWriter.Write(text);
            }
            if (!empty.IsEmpty)
            {
                if (pageContext.VersionPicker == RPLVersionEnum.RPL2008WithImageConsolidation)
                {
                    spbifWriter.Write((byte)47);
                }
                else
                {
                    spbifWriter.Write((byte)49);
                }
                spbifWriter.Write(empty.Left);
                spbifWriter.Write(empty.Top);
                spbifWriter.Write(empty.Width);
                spbifWriter.Write(empty.Height);
            }
            if (stream != null)
            {
                spbifWriter.Write((byte)39);
                spbifWriter.Write((int)stream.Length);
                byte[] array = new byte[4096];
                stream.Position = 0L;
                for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length))
                {
                    spbifWriter.Write(array, 0, num);
                }
            }
            if (actionInfoWithDynamicImageMapCollection != null)
            {
                base.WriteImageMapAreaInstanceCollection(actionInfoWithDynamicImageMapCollection, spbifWriter, pageContext);
            }
        }
        internal override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionImageMaps = null;
            string streamName = null;

            System.Drawing.Rectangle offsets = System.Drawing.Rectangle.Empty;
            Stream stream = LoadDynamicImage(pageContext, ref streamName, out actionImageMaps, out offsets);

            if (streamName != null)
            {
                spbifWriter.Write((byte)40);
                spbifWriter.Write(streamName);
            }
            if (!offsets.IsEmpty)
            {
                if (pageContext.VersionPicker == RPLVersionEnum.RPL2008WithImageConsolidation)
                {
                    spbifWriter.Write((byte)47);
                }
                else
                {
                    spbifWriter.Write((byte)49);
                }
                spbifWriter.Write(offsets.Left);
                spbifWriter.Write(offsets.Top);
                spbifWriter.Write(offsets.Width);
                spbifWriter.Write(offsets.Height);
            }
            if (stream != null)
            {
                spbifWriter.Write((byte)39);
                spbifWriter.Write((int)stream.Length);
                byte[] array = new byte[4096];
                stream.Position = 0L;
                for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length))
                {
                    spbifWriter.Write(array, 0, num);
                }
            }
            if (actionImageMaps != null)
            {
                WriteImageMapAreaInstanceCollection(actionImageMaps, spbifWriter, pageContext);
            }
        }
        public Stream LoadDynamicImage(PageContext pageContext, ref string streamName, out ActionInfoWithDynamicImageMapCollection actionImageMaps, out System.Drawing.Rectangle offsets)
        {
            IDynamicImageInstance dynamicImageInstance = (IDynamicImageInstance)base.m_source.Instance;
            Stream result = null;

            if (pageContext.EmfDynamicImage)
            {
                dynamicImageInstance.SetDpi(96, 96);
                result = dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.EMF, out actionImageMaps);
                this.Register(ref result, ref streamName, "emf", "image/emf", pageContext, out offsets);
            }
            else
            {
                result = dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out actionImageMaps);
                this.Register(ref result, ref streamName, "png", PageContext.PNG_MIME_TYPE, pageContext, out offsets);
            }
            return(result);
        }
        public bool RegisterItem(PageItem pageItem, PageContext pageContext)
        {
            if (!this.m_itemFound && pageItem != null)
            {
                switch (this.m_eventType)
                {
                case EventType.Collect:
                {
                    ReportItemInstance instance2 = pageItem.Source.Instance;
                    if (pageContext.Labels != null)
                    {
                        pageContext.Labels.WriteDocMapLabel(instance2);
                    }
                    if (pageContext.Bookmarks != null)
                    {
                        pageContext.Bookmarks.WriteBookmark(instance2);
                    }
                    if (pageContext.PageBookmarks != null)
                    {
                        pageContext.RegisterPageBookmark(instance2);
                    }
                    if (pageItem.ItemState == PageItem.State.OnPageHidden)
                    {
                        break;
                    }
                    return(false);
                }

                case EventType.BookmarkNavigationEvent:
                {
                    ReportItemInstance instance = pageItem.Source.Instance;
                    if (instance.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(this.m_bookmarkId, instance.Bookmark, false) == 0)
                    {
                        this.m_itemFound = true;
                        this.m_itemInfo  = instance.UniqueName;
                        return(false);
                    }
                    if (pageItem.ItemState == PageItem.State.OnPageHidden)
                    {
                        break;
                    }
                    return(false);
                }

                case EventType.DrillthroughEvent:
                {
                    ReportItemInstance instance5       = pageItem.Source.Instance;
                    TextBoxInstance    textBoxInstance = instance5 as TextBoxInstance;
                    if (textBoxInstance != null)
                    {
                        AspNetCore.ReportingServices.OnDemandReportRendering.TextBox textBox = (AspNetCore.ReportingServices.OnDemandReportRendering.TextBox)pageItem.Source;
                        if (!this.HasMatchingDrillthrough(textBox.ActionInfo))
                        {
                            foreach (ParagraphInstance paragraphInstance in textBoxInstance.ParagraphInstances)
                            {
                                foreach (TextRunInstance textRunInstance in paragraphInstance.TextRunInstances)
                                {
                                    AspNetCore.ReportingServices.OnDemandReportRendering.TextRun definition = textRunInstance.Definition;
                                    if (this.HasMatchingDrillthrough(definition.ActionInfo))
                                    {
                                        return(false);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        ImageInstance imageInstance2 = instance5 as ImageInstance;
                        if (imageInstance2 != null)
                        {
                            if (!this.HasMatchingDrillthrough(imageInstance2.ActionInfoWithDynamicImageMapAreas))
                            {
                                AspNetCore.ReportingServices.OnDemandReportRendering.Image image = (AspNetCore.ReportingServices.OnDemandReportRendering.Image)pageItem.Source;
                                this.HasMatchingDrillthrough(image.ActionInfo);
                            }
                        }
                        else
                        {
                            IDynamicImageInstance dynamicImageInstance = instance5 as IDynamicImageInstance;
                            if (dynamicImageInstance != null)
                            {
                                ActionInfoWithDynamicImageMapCollection imageMaps = default(ActionInfoWithDynamicImageMapCollection);
                                using (dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out imageMaps))
                                {
                                }
                                this.HasMatchingDrillthrough(imageMaps);
                            }
                        }
                    }
                    if (this.m_itemFound)
                    {
                        return(false);
                    }
                    if (pageItem.ItemState == PageItem.State.OnPageHidden)
                    {
                        break;
                    }
                    return(false);
                }

                case EventType.DocumentMapNavigationEvent:
                {
                    ReportItemInstance instance3 = pageItem.Source.Instance;
                    if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, instance3.UniqueName, true) == 0)
                    {
                        this.m_itemFound = true;
                        return(false);
                    }
                    if (pageItem.ItemState == PageItem.State.OnPageHidden)
                    {
                        break;
                    }
                    return(false);
                }

                case EventType.GetDocumentMap:
                {
                    ReportItemInstance instance4 = pageItem.Source.Instance;
                    if (pageContext.Labels != null)
                    {
                        pageContext.Labels.WriteDocMapLabel(instance4);
                    }
                    if (pageItem.ItemState == PageItem.State.OnPageHidden)
                    {
                        break;
                    }
                    return(false);
                }

                case EventType.FindChart:
                    if (pageItem.ItemState != PageItem.State.OnPageHidden)
                    {
                        ReportItem source2 = pageItem.Source;
                        if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source2.Instance.UniqueName, true) == 0)
                        {
                            this.m_itemFound = true;
                            ChartInstance chartInstance2 = source2.Instance as ChartInstance;
                            if (chartInstance2 != null)
                            {
                                this.WriteDynamicImageStream(chartInstance2.GetImage());
                            }
                        }
                    }
                    break;

                case EventType.FindGaugePanel:
                    if (pageItem.ItemState != PageItem.State.OnPageHidden)
                    {
                        ReportItem source3 = pageItem.Source;
                        if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source3.Instance.UniqueName, true) == 0)
                        {
                            this.m_itemFound = true;
                            GaugePanelInstance gaugePanelInstance2 = source3.Instance as GaugePanelInstance;
                            if (gaugePanelInstance2 != null)
                            {
                                this.WriteDynamicImageStream(gaugePanelInstance2.GetImage());
                            }
                        }
                    }
                    break;

                case EventType.FindMap:
                    if (pageItem.ItemState != PageItem.State.OnPageHidden)
                    {
                        ReportItem source5 = pageItem.Source;
                        if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source5.Instance.UniqueName, true) == 0)
                        {
                            this.m_itemFound = true;
                            MapInstance mapInstance2 = source5.Instance as MapInstance;
                            if (mapInstance2 != null)
                            {
                                this.WriteDynamicImageStream(mapInstance2.GetImage());
                            }
                        }
                    }
                    break;

                case EventType.FindImage:
                    if (pageItem.ItemState != PageItem.State.OnPageHidden)
                    {
                        ReportItem source4 = pageItem.Source;
                        if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source4.Instance.UniqueName, true) == 0)
                        {
                            this.m_itemFound = true;
                            ImageInstance imageInstance = source4.Instance as ImageInstance;
                            if (imageInstance != null)
                            {
                                Stream stream2   = this.m_createAndRegisterStream(this.m_streamName, string.Empty, null, imageInstance.MIMEType, false, StreamOper.CreateAndRegister);
                                byte[] imageData = imageInstance.ImageData;
                                if (stream2 != null && imageData != null && imageData.Length != 0)
                                {
                                    stream2.Write(imageData, 0, imageData.Length);
                                }
                            }
                        }
                    }
                    break;

                case EventType.ImageConsolidation:
                    if (pageItem.ItemState != PageItem.State.OnPageHidden)
                    {
                        ReportItem         source             = pageItem.Source;
                        GaugePanelInstance gaugePanelInstance = source.Instance as GaugePanelInstance;
                        Stream             stream             = null;
                        if (gaugePanelInstance != null)
                        {
                            stream = gaugePanelInstance.GetImage();
                        }
                        else
                        {
                            ChartInstance chartInstance = source.Instance as ChartInstance;
                            if (chartInstance != null)
                            {
                                stream = chartInstance.GetImage();
                            }
                            else
                            {
                                MapInstance mapInstance = source.Instance as MapInstance;
                                if (mapInstance != null)
                                {
                                    stream = mapInstance.GetImage();
                                }
                            }
                        }
                        if (stream != null)
                        {
                            ImageConsolidation imageConsolidation = pageContext.ImageConsolidation;
                            imageConsolidation.AppendImage(stream);
                            if (imageConsolidation.CurrentOffset >= imageConsolidation.IgnoreOffsetTill + 1 && imageConsolidation.ImageInfos.Count > 0)
                            {
                                this.m_itemFound = true;
                            }
                        }
                    }
                    break;

                default:
                    this.FindTextBox(pageItem as TextBox, pageContext);
                    break;
                }
                return(true);
            }
            return(false);
        }
示例#10
0
        internal override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, PageContext pageContext)
        {
            ActionInfoWithDynamicImageMapCollection actionImageMaps = null;

            ((RPLDynamicImageProps)nonSharedProps).DynamicImageContent = LoadDynamicImage(out actionImageMaps, pageContext);
        }