internal void CreateInstances(CreateInstancesTraversalContext traversalContext)
        {
            if (m_grouping != null)
            {
                m_grouping.Traverse(ProcessingStages.CreateGroupTree, m_expression == null || m_expression.Direction, traversalContext);
            }
            if (m_hierarchyObjs == null)
            {
                return;
            }
            bool flag = true;

            for (int i = 0; i < m_hierarchyObjs.Count; i++)
            {
                IReference <RuntimeHierarchyObj> reference = m_hierarchyObjs[i];
                using (reference.PinValue())
                {
                    RuntimeHierarchyObj runtimeHierarchyObj = reference.Value();
                    if (!flag || runtimeHierarchyObj is RuntimeGroupLeafObj)
                    {
                        ((RuntimeGroupLeafObj)runtimeHierarchyObj).TraverseAllLeafNodes(ProcessingStages.CreateGroupTree, traversalContext);
                        flag = false;
                    }
                    else
                    {
                        ((RuntimeDetailObj)runtimeHierarchyObj).CreateInstance(traversalContext);
                    }
                }
            }
        }
Exemplo n.º 2
0
        internal void CreateInstances(ScopeInstance parentInstance, IReference <RuntimeMemberObj>[] innerMembers, IReference <RuntimeDataTablixGroupLeafObj> innerGroupLeafRef)
        {
            CreateInstancesTraversalContext traversalContext = new CreateInstancesTraversalContext(parentInstance, innerMembers, innerGroupLeafRef);

            m_hierarchyDef.ResetInstancePathCascade();
            TraverseGroupOrSortTree(ProcessingStages.CreateGroupTree, traversalContext);
            if (m_detailDataRows != null)
            {
                m_detailDataRows.Dispose();
            }
            m_detailDataRows           = null;
            m_detailUserSortTargetInfo = null;
        }
 internal virtual void CreateInstance(CreateInstancesTraversalContext traversalContext)
 {
     Global.Tracer.Assert(condition: false);
 }