void IHierarchyObj.NextRow(IHierarchyObj owner) { if (m_dataRowHolder != null) { m_dataRowHolder.NextRow(owner.OdpContext, owner.Depth); return; } object keyValue = ((IDataRowSortOwner)m_hierarchyRoot.Value()).EvaluateDataRowSortExpression(m_sortExpression); m_sortTree.NextRow(keyValue, this); }
void IHierarchyObj.NextRow(IHierarchyObj owner) { if (m_dataHolder != null) { using (m_dataHolder.PinValue()) { m_dataHolder.Value().NextRow(); } } else if (m_sortHierarchyStruct != null) { IReference <RuntimeSortFilterEventInfo> sortInfo = m_sortHierarchyStruct.SortInfo; object sortOrder; using (sortInfo.PinValue()) { sortOrder = sortInfo.Value().GetSortOrder(m_odpContext.ReportRuntime); } m_sortHierarchyStruct.SortTree.NextRow(sortOrder, this); } else if (m_dataRowHolder != null) { m_dataRowHolder.NextRow(m_odpContext, Depth + 1); } }