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); } }