internal void AddSortInfo(ReportProcessing.IHierarchyObj owner, int sortInfoIndex, RuntimeSortFilterEventInfo sortInfo)
 {
     if (sortInfo.EventSource.UserSort.SortExpressionScope != null || owner.IsDetail)
     {
         if (sortInfo.EventSource.UserSort.SortExpressionScope == null)
         {
             AddSortInfoIndex(sortInfoIndex, sortInfo);
         }
         if (m_sortTree == null)
         {
             m_sortTree = new ReportProcessing.BTreeNode(owner);
         }
     }
     if (sortInfo.EventSource.UserSort.SortExpressionScope != null)
     {
         if (m_targetForNonDetailSort == null)
         {
             m_targetForNonDetailSort = new Hashtable();
         }
         m_targetForNonDetailSort.Add(sortInfoIndex, null);
     }
     else
     {
         if (m_targetForDetailSort == null)
         {
             m_targetForDetailSort = new Hashtable();
         }
         m_targetForDetailSort.Add(sortInfoIndex, null);
     }
 }
 internal void SortSEScopes(ReportProcessing.ProcessingContext processingContext, TextBox eventSource)
 {
     m_sortTree = new ReportProcessing.BTreeNode(this);
     for (int i = 0; i < m_scopeInstances.Count; i++)
     {
         ReportProcessing.RuntimeDataRegionObj runtimeDataRegionObj = m_scopeInstances[i];
         m_currentScopeInstanceIndex = i;
         runtimeDataRegionObj.SetupEnvironment();
         m_sortTree.NextRow(processingContext.ReportRuntime.EvaluateUserSortExpression(eventSource));
     }
 }