示例#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();
     }
 }
示例#2
0
 void IDataRowSortOwner.DataRowSortTraverse()
 {
     try
     {
         ITraversalContext traversalContext = new DataRowSortOwnerTraversalContext(this);
         this.m_sortedDataRowTree.Traverse(ProcessingStages.Grouping, this.m_dataRowSortExpression.Direction, traversalContext);
     }
     finally
     {
         this.m_inDataRowSortPhase = false;
         this.m_sortedDataRowTree.Dispose();
         this.m_sortedDataRowTree     = null;
         this.m_dataRowSortExpression = null;
     }
 }
示例#3
0
 public 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 (this.m_firstRow != null)
     {
         DataRowSortOwnerTraversalContext context = traversalContext as DataRowSortOwnerTraversalContext;
         this.Traverse(this.m_firstRow, operation, context, owner);
         if (this.m_dataRows != null)
         {
             for (int i = 0; i < this.m_dataRows.Count; i++)
             {
                 this.Traverse(this.m_dataRows[i], operation, context, owner);
             }
         }
     }
 }