private bool NextRegularRow() { if (m_odpContext.ReportObjectModel.FieldsImpl.AggregationFieldCount == 0) { m_hasProcessedAggregateRow = true; RuntimeDataRegionObj.UpdateAggregates(m_odpContext, m_customAggregates, updateAndSetup: false); } if (m_odpContext.ReportObjectModel.FieldsImpl.IsAggregateRow) { ScopeNextAggregateRow(m_userSortTargetInfo); return false; } NextNonAggregateRow(); return true; }
public override void ReadRow(DataActions dataAction, ITraversalContext context) { if (DataActions.UserSort == dataAction) { RuntimeDataRegionObj.CommonFirstRow(m_odpContext, ref m_firstRowIsAggregate, ref m_firstRow); CommonNextRow(m_dataRows); return; } if (DataActions.AggregatesOfAggregates == dataAction) { ((AggregateUpdateContext)context).UpdateAggregatesForRow(); return; } if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregatesOfAggregates)) { ((AggregateUpdateContext)context).UpdateAggregatesForRow(); } if (m_dataRegionDef.ProcessCellRunningValues) { return; } if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregates)) { if (m_postSortAggregates != null) { RuntimeDataRegionObj.UpdateAggregates(m_odpContext, m_postSortAggregates, updateAndSetup: false); } if (m_runningValues != null) { UpdateRunningValues(m_odpContext, m_runningValues); } } if (m_outerScope != null && (dataAction & m_outerDataAction) != 0) { using (m_outerScope.PinValue()) { m_outerScope.Value().ReadRow(dataAction, context); } } }