internal static void CollectTextBoxes(ReportItem reportItem, PageContext pageContext, bool useForPageHFEval, Dictionary <string, List <object> > textBoxes) { if (reportItem == null || !useForPageHFEval || !ShouldBeCollected(reportItem)) { return; } if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.TextBox) { Microsoft.ReportingServices.OnDemandReportRendering.TextBox textBox = (Microsoft.ReportingServices.OnDemandReportRendering.TextBox)reportItem; List <object> list = null; if (!textBoxes.ContainsKey(textBox.Name)) { list = new List <object>(); textBoxes[textBox.Name] = list; } else { list = textBoxes[textBox.Name]; } list.Add(((TextBoxInstance)textBox.Instance).OriginalValue); } else if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.Rectangle) { CollectTextBoxes(((Microsoft.ReportingServices.OnDemandReportRendering.Rectangle)reportItem).ReportItemCollection, pageContext, useForPageHFEval: true, textBoxes); } else if (!(reportItem is Microsoft.ReportingServices.OnDemandReportRendering.SubReport) && reportItem is Microsoft.ReportingServices.OnDemandReportRendering.Tablix) { CollectTextBoxes((Microsoft.ReportingServices.OnDemandReportRendering.Tablix)reportItem, pageContext, useForPageHFEval: true, textBoxes); } }
internal static void RegisterHiddenItem(ReportItem reportItem, PageContext pageContext, bool useForPageHFEval, Interactivity interactivity) { if (reportItem == null) { return; } bool flag = false; if (useForPageHFEval) { flag = HeaderFooterEval.AddToCurrentPage(reportItem); } if (interactivity != null && !interactivity.RegisterHiddenItem(reportItem, pageContext)) { interactivity = null; } if (!flag && interactivity == null) { return; } if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.TextBox) { if (flag) { Microsoft.ReportingServices.OnDemandReportRendering.TextBox textBox = reportItem as Microsoft.ReportingServices.OnDemandReportRendering.TextBox; if (textBox != null) { ((TextBoxInstance)textBox.Instance).AddToCurrentPage(); } } } else if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.Rectangle) { RegisterHiddenItem(((Microsoft.ReportingServices.OnDemandReportRendering.Rectangle)reportItem).ReportItemCollection, pageContext, flag, interactivity); } else if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.SubReport) { if (interactivity == null) { return; } Microsoft.ReportingServices.OnDemandReportRendering.SubReport subReport = (Microsoft.ReportingServices.OnDemandReportRendering.SubReport)reportItem; SubReportInstance subReportInstance = (SubReportInstance)subReport.Instance; if (!subReportInstance.ProcessedWithError && !subReportInstance.NoRows) { for (int i = 0; i < subReport.Report.ReportSections.Count; i++) { RegisterHiddenItem(subReport.Report.ReportSections[i].Body.ReportItemCollection, pageContext, useForPageHFEval: false, interactivity); } } } else if (reportItem is Microsoft.ReportingServices.OnDemandReportRendering.Tablix) { RegisterHiddenItem((Microsoft.ReportingServices.OnDemandReportRendering.Tablix)reportItem, pageContext, flag, interactivity); } }
internal static void RegisterPageItem(PageItem pageItem, PageContext pageContext, bool useForPageHFEval, Interactivity interactivity) { if (!useForPageHFEval && interactivity == null) { return; } ReportItem source = pageItem.Source; bool flag = false; if (useForPageHFEval) { if (pageItem.ItemState == PageItem.State.OnPageHidden) { if (source.Visibility.ToggleItem != null || !source.Visibility.Hidden.IsExpression) { flag = true; } } else { Microsoft.ReportingServices.OnDemandReportRendering.TextBox textBox = source as Microsoft.ReportingServices.OnDemandReportRendering.TextBox; if (textBox != null) { ((TextBoxInstance)textBox.Instance).AddToCurrentPage(); } } } if (interactivity != null && pageItem.ItemState != PageItem.State.OnPageHidden) { interactivity = null; } if (flag || interactivity != null) { RegisterHiddenItem(source, pageContext, flag, interactivity); } }
internal bool RegisterItem(PageItem pageItem, PageContext pageContext) { if (m_itemFound || pageItem == null) { return(false); } switch (m_eventType) { case EventType.Collect: { ReportItemInstance instance5 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance5); } if (pageContext.Bookmarks != null) { pageContext.Bookmarks.WriteBookmark(instance5); } if (pageContext.PageBookmarks != null) { pageContext.RegisterPageBookmark(instance5); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.BookmarkNavigationEvent: { ReportItemInstance instance2 = pageItem.Source.Instance; if (instance2.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(m_bookmarkId, instance2.Bookmark, ignoreCase: false) == 0) { m_itemFound = true; m_itemInfo = instance2.UniqueName; return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.DrillthroughEvent: { ReportItemInstance instance = pageItem.Source.Instance; TextBoxInstance textBoxInstance = instance as TextBoxInstance; if (textBoxInstance != null) { Microsoft.ReportingServices.OnDemandReportRendering.TextBox textBox = (Microsoft.ReportingServices.OnDemandReportRendering.TextBox)pageItem.Source; if (!HasMatchingDrillthrough(textBox.ActionInfo)) { foreach (ParagraphInstance paragraphInstance in textBoxInstance.ParagraphInstances) { foreach (TextRunInstance textRunInstance in paragraphInstance.TextRunInstances) { Microsoft.ReportingServices.OnDemandReportRendering.TextRun definition = textRunInstance.Definition; if (HasMatchingDrillthrough(definition.ActionInfo)) { return(false); } } } } } else { ImageInstance imageInstance = instance as ImageInstance; if (imageInstance != null) { if (!HasMatchingDrillthrough(imageInstance.ActionInfoWithDynamicImageMapAreas)) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)pageItem.Source; HasMatchingDrillthrough(image.ActionInfo); } } else { IDynamicImageInstance dynamicImageInstance = instance as IDynamicImageInstance; if (dynamicImageInstance != null) { ActionInfoWithDynamicImageMapCollection actionImageMaps; using (dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out actionImageMaps)) { } HasMatchingDrillthrough(actionImageMaps); } } } if (m_itemFound) { return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.DocumentMapNavigationEvent: { ReportItemInstance instance3 = pageItem.Source.Instance; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, instance3.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.GetDocumentMap: { ReportItemInstance instance4 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance4); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.FindChart: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source2 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source2.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; ChartInstance chartInstance2 = source2.Instance as ChartInstance; if (chartInstance2 != null) { WriteDynamicImageStream(chartInstance2.GetImage()); } } break; } case EventType.FindGaugePanel: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source3 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source3.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; GaugePanelInstance gaugePanelInstance2 = source3.Instance as GaugePanelInstance; if (gaugePanelInstance2 != null) { WriteDynamicImageStream(gaugePanelInstance2.GetImage()); } } break; } case EventType.FindMap: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source5 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source5.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; MapInstance mapInstance2 = source5.Instance as MapInstance; if (mapInstance2 != null) { WriteDynamicImageStream(mapInstance2.GetImage()); } } break; } case EventType.FindImage: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source4 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source4.Instance.UniqueName, ignoreCase: true) != 0) { break; } m_itemFound = true; ImageInstance imageInstance2 = source4.Instance as ImageInstance; if (imageInstance2 != null) { Stream stream3 = m_createAndRegisterStream(m_streamName, string.Empty, null, imageInstance2.MIMEType, willSeek: false, StreamOper.CreateAndRegister); byte[] imageData = imageInstance2.ImageData; if (stream3 != null && imageData != null && imageData.Length != 0) { stream3.Write(imageData, 0, imageData.Length); } } break; } case EventType.ImageConsolidation: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } 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) { m_itemFound = true; } } break; } default: FindTextBox(pageItem as TextBox, pageContext); break; } return(true); }