internal ReportItem FindReportItemInBody(int uniqueName) { object obj = null; NonComputedUniqueNames nonCompNames = null; QuickFindHashtable quickFind = ReportSnapshot.GetQuickFind(ChunkManager); if (quickFind != null) { obj = quickFind[uniqueName]; } if (obj == null) { Global.Tracer.Assert(ReportSnapshot.ReportInstance != null); obj = ((ISearchByUniqueName)ReportSnapshot.ReportInstance).Find(uniqueName, ref nonCompNames, ChunkManager); if (obj == null) { return(null); } } if (obj is Microsoft.ReportingServices.ReportProcessing.ReportItem) { Microsoft.ReportingServices.ReportProcessing.ReportItem reportItemDef = (Microsoft.ReportingServices.ReportProcessing.ReportItem)obj; return(ReportItem.CreateItem(-1, reportItemDef, null, this, nonCompNames)); } Microsoft.ReportingServices.ReportProcessing.ReportItemInstance reportItemInstance = (Microsoft.ReportingServices.ReportProcessing.ReportItemInstance)obj; return(ReportItem.CreateItem(-1, reportItemInstance.ReportItemDef, reportItemInstance, this, nonCompNames)); }
public ReportItem Find(string uniqueName) { if (uniqueName == null || uniqueName.Length <= 0) { return(null); } if (uniqueName.Equals(base.UniqueName)) { return(this); } char[] separator = new char[1] { 'a' }; string[] array = uniqueName.Split(separator); if (array == null || array.Length < 2) { return(null); } object obj = (m_pageSectionInstance != null) ? ((ISearchByUniqueName)m_pageSectionInstance) : ((ISearchByUniqueName)m_pageSectionDef); NonComputedUniqueNames nonComputedUniqueNames = null; int num = -1; for (int i = 1; i < array.Length; i++) { IIndexInto indexInto = obj as IIndexInto; if (indexInto == null) { obj = null; break; } num = ReportItem.StringToInt(array[i]); NonComputedUniqueNames nonCompNames = null; obj = indexInto.GetChildAt(num, out nonCompNames); if (nonComputedUniqueNames == null) { nonComputedUniqueNames = nonCompNames; continue; } if (nonComputedUniqueNames.ChildrenUniqueNames == null || num < 0 || num >= nonComputedUniqueNames.ChildrenUniqueNames.Length) { return(null); } nonComputedUniqueNames = nonComputedUniqueNames.ChildrenUniqueNames[num]; } if (obj == null) { return(null); } if (obj is Microsoft.ReportingServices.ReportProcessing.ReportItem) { Microsoft.ReportingServices.ReportProcessing.ReportItem reportItemDef = (Microsoft.ReportingServices.ReportProcessing.ReportItem)obj; return(ReportItem.CreateItem(uniqueName, reportItemDef, null, base.RenderingContext, nonComputedUniqueNames)); } ReportItemInstance reportItemInstance = (ReportItemInstance)obj; return(ReportItem.CreateItem(uniqueName, reportItemInstance.ReportItemDef, reportItemInstance, base.RenderingContext, nonComputedUniqueNames)); }
public ReportItem this[int index] { get { if (0 > index || index >= Count) { throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, Count); } ReportItem reportItem = null; if (m_reportItems == null || m_reportItems[index] == null) { int internalIndex = 0; bool computed = false; Microsoft.ReportingServices.ReportProcessing.ReportItem reportItem2 = null; m_reportItemColDef.GetReportItem(index, out computed, out internalIndex, out reportItem2); NonComputedUniqueNames nonComputedUniqueNames = null; ReportItemInstance reportItemInstance = null; if (!computed) { if (m_childrenNonComputedUniqueNames != null) { nonComputedUniqueNames = m_childrenNonComputedUniqueNames[internalIndex]; } } else if (m_reportItemColInstance != null) { reportItemInstance = m_reportItemColInstance[internalIndex]; } reportItem = ReportItem.CreateItem(index, reportItem2, reportItemInstance, m_renderingContext, nonComputedUniqueNames); if (m_renderingContext.CacheState) { if (m_reportItems == null) { m_reportItems = new ReportItem[Count]; } m_reportItems[index] = reportItem; } } else { reportItem = m_reportItems[index]; } return(reportItem); } }