private bool HasMatchingDrillthrough(ActionInfo actionInfo) { if (actionInfo == null) { return(false); } foreach (Action action in actionInfo.Actions) { ActionDrillthrough drillthrough = action.Drillthrough; if (drillthrough == null) { continue; } ActionDrillthroughInstance instance = drillthrough.Instance; if (instance != null && SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, instance.DrillthroughID, ignoreCase: false) == 0) { m_drillthroughResult = new DrillthroughInfo(); m_drillthroughResult.ReportName = instance.ReportName; if (drillthrough.Parameters != null) { m_drillthroughResult.Parameters = drillthrough.Parameters.ToNameValueCollectionForDrillthroughEvent(); } m_itemFound = true; return(true); } } return(false); }
public int ProcessDocumentMapNavigationEvent(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, string documentMapId) { if (!report.HasDocumentMap) { return(0); } if (documentMapId == null) { return(0); } int lastPageCollected = 0; bool flag = false; int num = InteractivityChunks.FindDocumentMapLabel(report, documentMapId, ref lastPageCollected, ref flag); if (!flag && num == 0) { using (SPBProcessing sPBProcessing = new SPBProcessing(report, 0, false)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, true)); return(sPBProcessing.FindDocumentMap(documentMapId, lastPageCollected)); } } return(num); }
public int ProcessDocumentMapNavigationEvent(Microsoft.ReportingServices.OnDemandReportRendering.Report report, string documentMapId) { if (!report.HasDocumentMap) { return(0); } if (documentMapId == null) { return(0); } int lastPageCollected = 0; bool reportDone = false; int num = InteractivityChunks.FindDocumentMapLabel(report, documentMapId, ref lastPageCollected, ref reportDone); if (!reportDone && num == 0) { using (SPBProcessing sPBProcessing = new SPBProcessing(report, 0, needTotalPages: false)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, addToggledItems: true)); return(sPBProcessing.FindDocumentMap(documentMapId, lastPageCollected)); } } return(num); }
public int ProcessBookmarkNavigationEvent(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, int totalPages, string bookmarkId, out string uniqueName) { uniqueName = null; if (!report.HasBookmarks) { return(0); } if (bookmarkId == null) { return(0); } int lastPageCollected = 0; bool flag = false; int num = InteractivityChunks.FindBoomark(report, bookmarkId, ref uniqueName, ref lastPageCollected, ref flag); if (!flag && num == 0) { using (SPBProcessing sPBProcessing = new SPBProcessing(report, totalPages, true)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, true)); return(sPBProcessing.FindBookmark(bookmarkId, lastPageCollected, ref uniqueName)); } } return(num); }
public bool RegisterHiddenItem(ReportItem reportItem, PageContext pageContext) { if (this.m_eventType == EventType.Collect) { ReportItemInstance instance = reportItem.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance); } if (pageContext.Bookmarks != null) { pageContext.Bookmarks.WriteBookmark(instance); } if (pageContext.PageBookmarks != null) { pageContext.RegisterPageBookmark(instance); } goto IL_00e5; } if (this.m_eventType == EventType.GetDocumentMap) { ReportItemInstance instance2 = reportItem.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance2); } goto IL_00e5; } if (this.m_eventType == EventType.BookmarkNavigationEvent) { ReportItemInstance instance3 = reportItem.Instance; if (instance3.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(this.m_bookmarkId, instance3.Bookmark, false) == 0) { this.m_itemFound = true; this.m_itemInfo = instance3.UniqueName; return(false); } goto IL_00e5; } if (this.m_eventType == EventType.DocumentMapNavigationEvent) { ReportItemInstance instance4 = reportItem.Instance; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, instance4.UniqueName, true) == 0) { this.m_itemFound = true; return(false); } goto IL_00e5; } return(false); IL_00e5: return(true); }
internal bool RegisterHiddenItem(ReportItem reportItem, PageContext pageContext) { if (m_eventType == EventType.Collect) { ReportItemInstance instance = reportItem.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance); } if (pageContext.Bookmarks != null) { pageContext.Bookmarks.WriteBookmark(instance); } if (pageContext.PageBookmarks != null) { pageContext.RegisterPageBookmark(instance); } } else if (m_eventType == EventType.GetDocumentMap) { ReportItemInstance instance2 = reportItem.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance2); } } else if (m_eventType == EventType.BookmarkNavigationEvent) { ReportItemInstance instance3 = reportItem.Instance; if (instance3.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(m_bookmarkId, instance3.Bookmark, ignoreCase: false) == 0) { m_itemFound = true; m_itemInfo = instance3.UniqueName; return(false); } } else { if (m_eventType != EventType.DocumentMapNavigationEvent) { return(false); } ReportItemInstance instance4 = reportItem.Instance; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, instance4.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; return(false); } } return(true); }
public int ProcessFindStringEvent(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, int totalPages, int startPage, int endPage, string findValue) { if (findValue != null && startPage > 0 && endPage > 0) { int num = 0; using (SPBProcessing sPBProcessing = new SPBProcessing(report, totalPages, true)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, false)); return(sPBProcessing.FindString(startPage, endPage, findValue)); } } return(0); }
public int ProcessUserSortEvent(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, string textbox, ref int numberOfPages, ref PaginationMode paginationMode) { if (textbox == null) { return(0); } int num = 0; using (SPBProcessing sPBProcessing = new SPBProcessing(report, 0, false)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, true)); return(sPBProcessing.FindUserSort(textbox, ref numberOfPages, ref paginationMode)); } }
public int ProcessFindStringEvent(Microsoft.ReportingServices.OnDemandReportRendering.Report report, int totalPages, int startPage, int endPage, string findValue) { if (findValue == null || startPage <= 0 || endPage <= 0) { return(0); } int num = 0; using (SPBProcessing sPBProcessing = new SPBProcessing(report, totalPages, needTotalPages: true)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, addToggledItems: false)); return(sPBProcessing.FindString(startPage, endPage, findValue)); } }
public void RegisterDocMapRootLabel(string rootLabelUniqueName, PageContext pageContext) { if (!this.m_itemFound && rootLabelUniqueName != null && pageContext.PageNumber == 1) { if (this.m_eventType == EventType.Collect || this.m_eventType == EventType.GetDocumentMap) { if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapRootLabel(rootLabelUniqueName); } } else if (this.m_eventType == EventType.DocumentMapNavigationEvent && SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, rootLabelUniqueName, true) == 0) { this.m_itemFound = true; } } }
public string ProcessDrillthroughEvent(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, int totalPages, string drillthroughId, out NameValueCollection parameters) { parameters = null; if (drillthroughId == null) { return(null); } int lastPageCollected = 0; string text = null; using (SPBProcessing sPBProcessing = new SPBProcessing(report, totalPages, true)) { sPBProcessing.CanTracePagination = true; sPBProcessing.SetContext(new SPBContext(0, 0, true)); return(sPBProcessing.FindDrillthrough(drillthroughId, lastPageCollected, out parameters)); } }
internal void RegisterDocMapRootLabel(string rootLabelUniqueName, PageContext pageContext) { if (m_itemFound || rootLabelUniqueName == null || pageContext.PageNumber != 1) { return; } if (m_eventType == EventType.Collect || m_eventType == EventType.GetDocumentMap) { if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapRootLabel(rootLabelUniqueName); } } else if (m_eventType == EventType.DocumentMapNavigationEvent && SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, rootLabelUniqueName, ignoreCase: true) == 0) { m_itemFound = true; } }
private void FindTextBox(TextBox textbox, PageContext pageContext) { if (!this.m_itemFound && textbox != null && textbox.ItemState != PageItem.State.OnPageHidden) { if (this.m_eventType == EventType.FindStringEvent) { this.m_itemFound = textbox.SearchTextBox(this.m_itemInfo, pageContext); } else if (this.m_eventType == EventType.UserSortEvent) { ReportItem source = textbox.Source; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source.Instance.UniqueName, true) == 0) { this.m_itemFound = true; } } } }
private void FindTextBox(TextBox textbox, PageContext pageContext) { if (m_itemFound || textbox == null || textbox.ItemState == PageItem.State.OnPageHidden) { return; } if (m_eventType == EventType.FindStringEvent) { m_itemFound = textbox.SearchTextBox(m_itemInfo, pageContext); } else if (m_eventType == EventType.UserSortEvent) { ReportItem source = textbox.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; } } }
public static int FindBoomark(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, string bookmarkId, ref string uniqueName, ref int lastPageCollected, ref bool reportDone) { int result = 0; string text = null; Stream chunk = report.GetChunk(AspNetCore.ReportingServices.OnDemandReportRendering.Report.ChunkTypes.Interactivity, "Bookmarks"); if (chunk != null && chunk.Length > 0) { chunk.Position = 0L; BinaryReader binaryReader = new BinaryReader(chunk); byte b = binaryReader.ReadByte(); while (true) { switch (b) { case 0: break; case 2: lastPageCollected = binaryReader.ReadInt32(); reportDone = binaryReader.ReadBoolean(); goto IL_0090; default: goto IL_0090; } text = binaryReader.ReadString(); if (SPBProcessing.CompareWithOrdinalComparison(bookmarkId, text, false) == 0) { uniqueName = binaryReader.ReadString(); return(binaryReader.ReadInt32()); } binaryReader.ReadString(); binaryReader.ReadInt32(); binaryReader.ReadByte(); b = binaryReader.ReadByte(); } } goto IL_0090; IL_0090: return(result); }
public void RegisterGroupLabel(Group group, PageContext pageContext) { if (!this.m_itemFound && group != null) { if (this.m_eventType == EventType.Collect || this.m_eventType == EventType.GetDocumentMap) { GroupInstance instance = group.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance); } } else if (this.m_eventType == EventType.DocumentMapNavigationEvent) { GroupInstance instance2 = group.Instance; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, instance2.UniqueName, true) == 0) { this.m_itemFound = true; } } } }
internal void RegisterGroupLabel(Group group, PageContext pageContext) { if (m_itemFound || group == null) { return; } if (m_eventType == EventType.Collect || m_eventType == EventType.GetDocumentMap) { GroupInstance instance = group.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance); } } else if (m_eventType == EventType.DocumentMapNavigationEvent) { GroupInstance instance2 = group.Instance; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, instance2.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; } } }
internal static int FindDocumentMapLabel(Microsoft.ReportingServices.OnDemandReportRendering.Report report, string documentMapId, ref int lastPageCollected, ref bool reportDone) { int result = 0; string text = null; Stream chunk = report.GetChunk(Microsoft.ReportingServices.OnDemandReportRendering.Report.ChunkTypes.Interactivity, "Labels"); if (chunk != null && chunk.Length > 0) { chunk.Position = 0L; BinaryReader binaryReader = new BinaryReader(chunk); byte b = binaryReader.ReadByte(); while (true) { switch (b) { case 1: text = binaryReader.ReadString(); if (SPBProcessing.CompareWithOrdinalComparison(documentMapId, text, ignoreCase: true) != 0) { goto IL_0051; } return(binaryReader.ReadInt32()); case 2: lastPageCollected = binaryReader.ReadInt32(); reportDone = binaryReader.ReadBoolean(); break; } break; IL_0051: binaryReader.ReadInt32(); binaryReader.ReadByte(); b = binaryReader.ReadByte(); } } return(result); }
public Report(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, PageContext pageContext, string rplVersion, bool defaultVersion) { this.m_report = report; this.m_pageContext = pageContext; if (!string.IsNullOrEmpty(rplVersion)) { char[] separator = new char[1] { '.' }; string[] array = rplVersion.Split(separator); if (array.Length < 2) { this.m_rplVersion = new Version(10, 3, 0); } else { int major = SPBProcessing.ParseInt(array[0], 10); int minor = SPBProcessing.ParseInt(array[1], 3); int build = 0; if (array.Length > 2) { build = SPBProcessing.ParseInt(array[2], 0); } this.m_rplVersion = new Version(major, minor, build); } } else if (defaultVersion) { this.m_rplVersion = new Version(10, 3, 0); } else { this.m_rplVersion = new Version(10, 6, 0); } this.m_pageContext.VersionPicker = RPLReader.CompareRPLVersions(this.m_rplVersion); }
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); }