Example #1
0
 internal void FinishReadingGroups(AggregateUpdateContext context)
 {
     FinishFilters(context);
 }
Example #2
0
        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);
        }
Example #3
0
 public void FinishReadingGroups(AggregateUpdateContext context)
 {
     this.FinishFilters(context);
 }