Example #1
0
        public void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.DataSet:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is DataSet);
                    Global.Tracer.Assert(m_dataSet != (DataSet)referenceableItems[item.RefID]);
                    m_dataSet = (DataSet)referenceableItems[item.RefID];
                    break;

                case MemberName.SortTarget:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope);
                    Global.Tracer.Assert(m_sortTarget != (ISortFilterScope)referenceableItems[item.RefID]);
                    m_sortTarget = (ISortFilterScope)referenceableItems[item.RefID];
                    break;

                case MemberName.DetailScopeSubReports:
                    if (m_detailScopeSubReports == null)
                    {
                        m_detailScopeSubReports = new List <SubReport>();
                    }
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is SubReport);
                    Global.Tracer.Assert(!m_detailScopeSubReports.Contains((SubReport)referenceableItems[item.RefID]));
                    m_detailScopeSubReports.Add((SubReport)referenceableItems[item.RefID]);
                    break;

                case MemberName.SortExpressionScope:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope);
                    Global.Tracer.Assert(m_sortExpressionScope != (ISortFilterScope)referenceableItems[item.RefID]);
                    m_sortExpressionScope = (ISortFilterScope)referenceableItems[item.RefID];
                    break;

                case MemberName.GroupsInSortTarget:
                    if (m_groupsInSortTarget == null)
                    {
                        m_groupsInSortTarget = new GroupingList();
                    }
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                    Global.Tracer.Assert(!m_groupsInSortTarget.Contains((Grouping)referenceableItems[item.RefID]));
                    m_groupsInSortTarget.Add((Grouping)referenceableItems[item.RefID]);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Example #2
0
        public override void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            base.ResolveReferences(memberReferencesCollection, referenceableItems);
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.ContainingScopes:
                    if (m_containingScopes == null)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    if (item.RefID != -2)
                    {
                        Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                        Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                        Global.Tracer.Assert(!m_containingScopes.Contains((Grouping)referenceableItems[item.RefID]));
                        m_containingScopes.Add((Grouping)referenceableItems[item.RefID]);
                    }
                    else
                    {
                        m_containingScopes.Add(null);
                    }
                    break;

                case MemberName.RecursiveMember:
                {
                    if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value2))
                    {
                        m_recursiveMember = (value2 as TablixMember);
                    }
                    break;
                }

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }