Beispiel #1
0
 private void Traverse(DataFieldRow dataRow, ProcessingStages operation, DataRowSortOwnerTraversalContext context, IHierarchyObj owner)
 {
     dataRow.SetFields(owner.OdpContext.ReportObjectModel.FieldsImpl);
     if (operation == ProcessingStages.UserSortFilter)
     {
         owner.ReadRow();
     }
     else
     {
         context.SortOwner.PostDataRowSortNextRow();
     }
 }
 void IDataRowSortOwner.DataRowSortTraverse()
 {
     try
     {
         ITraversalContext traversalContext = new DataRowSortOwnerTraversalContext(this);
         m_sortedDataRowTree.Traverse(ProcessingStages.Grouping, m_dataRowSortExpression.Direction, traversalContext);
     }
     finally
     {
         m_inDataRowSortPhase = false;
         m_sortedDataRowTree.Dispose();
         m_sortedDataRowTree = null;
         m_dataRowSortExpression = null;
     }
 }
Beispiel #3
0
        internal void Traverse(ProcessingStages operation, ITraversalContext traversalContext, IHierarchyObj owner)
        {
            Global.Tracer.Assert(ProcessingStages.UserSortFilter == operation || owner.InDataRowSortPhase, "Invalid call to RuntimeSortDataHolder.Traverse.  Must be in UserSortFilter stage or InDataRowSortPhase");
            if (m_firstRow == null)
            {
                return;
            }
            DataRowSortOwnerTraversalContext context = traversalContext as DataRowSortOwnerTraversalContext;

            Traverse(m_firstRow, operation, context, owner);
            if (m_dataRows != null)
            {
                for (int i = 0; i < m_dataRows.Count; i++)
                {
                    Traverse(m_dataRows[i], operation, context, owner);
                }
            }
        }