public void Init()
 {
     if (!this.m_nonAggregateMode)
     {
         this.m_aggregator.Init();
         this.m_aggregateResult = default(DataAggregateObjResult);
     }
 }
        public DataAggregateObj(DataAggregateInfo aggInfo, ReportProcessing.ProcessingContext processingContext)
        {
            this.m_nonAggregateMode = false;
            this.m_name             = aggInfo.Name;
            this.m_duplicateNames   = aggInfo.DuplicateNames;
            switch (aggInfo.AggregateType)
            {
            case DataAggregateInfo.AggregateTypes.First:
                this.m_aggregator = new First();
                break;

            case DataAggregateInfo.AggregateTypes.Last:
                this.m_aggregator = new Last();
                break;

            case DataAggregateInfo.AggregateTypes.Sum:
                this.m_aggregator = new Sum();
                break;

            case DataAggregateInfo.AggregateTypes.Avg:
                this.m_aggregator = new Avg();
                break;

            case DataAggregateInfo.AggregateTypes.Max:
                this.m_aggregator = new Max(processingContext.CompareInfo, processingContext.ClrCompareOptions);
                break;

            case DataAggregateInfo.AggregateTypes.Min:
                this.m_aggregator = new Min(processingContext.CompareInfo, processingContext.ClrCompareOptions);
                break;

            case DataAggregateInfo.AggregateTypes.CountDistinct:
                this.m_aggregator = new CountDistinct();
                break;

            case DataAggregateInfo.AggregateTypes.CountRows:
                this.m_aggregator = new CountRows();
                break;

            case DataAggregateInfo.AggregateTypes.Count:
                this.m_aggregator = new Count();
                break;

            case DataAggregateInfo.AggregateTypes.StDev:
                this.m_aggregator = new StDev();
                break;

            case DataAggregateInfo.AggregateTypes.Var:
                this.m_aggregator = new Var();
                break;

            case DataAggregateInfo.AggregateTypes.StDevP:
                this.m_aggregator = new StDevP();
                break;

            case DataAggregateInfo.AggregateTypes.VarP:
                this.m_aggregator = new VarP();
                break;

            case DataAggregateInfo.AggregateTypes.Aggregate:
                this.m_aggregator = new Aggregate();
                break;

            case DataAggregateInfo.AggregateTypes.Previous:
                this.m_aggregator = new Previous();
                break;

            default:
                Global.Tracer.Assert(false, "Unsupport aggregate type.");
                break;
            }
            this.m_aggregateDef = aggInfo;
            this.m_reportRT     = processingContext.ReportRuntime;
            if (this.m_reportRT.ReportExprHost != null)
            {
                this.m_aggregateDef.SetExprHosts(this.m_reportRT.ReportExprHost, processingContext.ReportObjectModel);
            }
            this.m_aggregateResult = default(DataAggregateObjResult);
            this.Init();
        }
 public void Set(DataAggregateObjResult aggregateResult)
 {
     this.m_nonAggregateMode = true;
     this.m_aggregateResult  = aggregateResult;
 }
 public DataAggregateObj(DataAggregateInfo aggrDef, DataAggregateObjResult aggrResult)
 {
     this.m_nonAggregateMode = true;
     this.m_aggregateDef     = aggrDef;
     this.m_aggregateResult  = aggrResult;
 }