Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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);
     }
 }