Esempio n. 1
0
 void IHierarchyObj.ProcessUserSort()
 {
     Global.Tracer.Assert(m_userSortTargetInfo != null, "(null != m_userSortTargetInfo)");
     m_odpContext.ProcessUserSortForTarget(SelfReference, ref m_dataRows, m_userSortTargetInfo.TargetForNonDetailSort);
     if (!m_userSortTargetInfo.TargetForNonDetailSort)
     {
         return;
     }
     m_userSortTargetInfo.ResetTargetForNonDetailSort();
     m_userSortTargetInfo.EnterProcessUserSortPhase(m_odpContext);
     CreateRuntimeStructure();
     m_userSortTargetInfo.SortTree.Traverse(ProcessingStages.UserSortFilter, ascending: true, null);
     m_userSortTargetInfo.SortTree.Dispose();
     m_userSortTargetInfo.SortTree = null;
     if (m_userSortTargetInfo.AggregateRows != null)
     {
         for (int i = 0; i < m_userSortTargetInfo.AggregateRows.Count; i++)
         {
             m_userSortTargetInfo.AggregateRows[i].SetFields(m_odpContext.ReportObjectModel.FieldsImpl);
             SendToInner();
         }
         m_userSortTargetInfo.AggregateRows = null;
     }
     m_userSortTargetInfo.LeaveProcessUserSortPhase(m_odpContext);
 }
 void IHierarchyObj.ProcessUserSort()
 {
     m_odpContext.ProcessUserSortForTarget((RuntimeRDLDataRegionObjReference)base.SelfReference, ref m_dataRows, m_userSortTargetInfo.TargetForNonDetailSort);
     m_dataAction &= ~DataActions.UserSort;
     if (m_userSortTargetInfo.TargetForNonDetailSort)
     {
         m_userSortTargetInfo.ResetTargetForNonDetailSort();
         m_userSortTargetInfo.EnterProcessUserSortPhase(m_odpContext);
         DataActions innerDataAction = m_innerDataAction;
         ConstructRuntimeStructure(ref innerDataAction, m_odpContext.ReportDefinition.MergeOnePass);
         if (m_dataAction != 0)
         {
             m_dataRows = new ScalableList<DataFieldRow>(m_depth, m_odpContext.TablixProcessingScalabilityCache);
         }
         ScopeFinishSorting(ref m_firstRow, m_userSortTargetInfo);
         m_userSortTargetInfo.LeaveProcessUserSortPhase(m_odpContext);
     }
 }