internal void FinishReadingGroups(AggregateUpdateContext context) { FinishFilters(context); }
private void FinishFilters(AggregateUpdateContext context) { if (m_filterInfo == null) { return; } FilterInfo filterInfo = m_filterInfo; m_filterInfo = null; m_startFilterIndex = m_currentSpecialFilterIndex + 1; bool flag = m_startFilterIndex >= m_filters.Count; TrimInstanceSet(filterInfo); IEnumerator <object> instances = filterInfo.Instances; if (instances != null) { try { Microsoft.ReportingServices.ReportProcessing.ReportProcessing.IFilterOwner filterOwner; if (m_owner != null) { m_owner.PinValue(); filterOwner = m_owner.Value(); } else { filterOwner = m_ownerObj; } while (instances.MoveNext()) { object current = instances.Current; if (FilterTypes.GroupFilter == m_filterType) { IReference <RuntimeGroupLeafObj> reference = (IReference <RuntimeGroupLeafObj>)current; using (reference.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = reference.Value(); runtimeGroupLeafObj.SetupEnvironment(); if (flag || PassFilters(current)) { runtimeGroupLeafObj.PostFilterNextRow(context); } else { runtimeGroupLeafObj.FailFilter(); } } } else { ((DataFieldRow)current).SetFields(m_processingContext.ReportObjectModel.FieldsImpl); if (flag || PassFilters(current)) { filterOwner.PostFilterNextRow(); } } } } finally { if (m_owner != null) { m_owner.UnPinValue(); } } } filterInfo.RemoveAll(); filterInfo = null; FinishFilters(context); }
public void FinishReadingGroups(AggregateUpdateContext context) { this.FinishFilters(context); }