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