Пример #1
0
        public override void Update(object[] expressions, IErrorContext iErrorContext)
        {
            object obj = expressions[0];

            AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode typeCode = DataAggregate.GetTypeCode(obj);
            if (!DataAggregate.IsNull(typeCode))
            {
                if (!DataTypeUtility.IsNumeric(typeCode))
                {
                    iErrorContext.Register(ProcessingErrorCode.rsAggregateOfNonNumericData, Severity.Warning);
                    throw new ReportProcessingException(ErrorCode.rsInvalidOperation);
                }
                DataAggregate.ConvertToDoubleOrDecimal(typeCode, obj, out typeCode, out obj);
                if (this.m_expressionType == AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Null)
                {
                    this.m_expressionType = typeCode;
                }
                else if (typeCode != this.m_expressionType)
                {
                    iErrorContext.Register(ProcessingErrorCode.rsAggregateOfMixedDataTypes, Severity.Warning);
                    throw new ReportProcessingException(ErrorCode.rsInvalidOperation);
                }
                object obj2 = DataAggregate.Square(typeCode, obj);
                if (this.m_sumOfX == null)
                {
                    this.m_sumOfXType    = typeCode;
                    this.m_sumOfX        = obj;
                    this.m_sumOfXSquared = obj2;
                }
                else
                {
                    this.m_sumOfX        = DataAggregate.Add(this.m_sumOfXType, this.m_sumOfX, typeCode, obj);
                    this.m_sumOfXSquared = DataAggregate.Add(this.m_sumOfXType, this.m_sumOfXSquared, typeCode, obj2);
                }
                this.m_currentCount += 1u;
            }
        }
Пример #2
0
        public override void Update(object[] expressions, IErrorContext iErrorContext)
        {
            object o = expressions[0];

            AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode typeCode = DataAggregate.GetTypeCode(o);
            if (!DataAggregate.IsNull(typeCode))
            {
                this.m_currentTotal++;
            }
        }
        public DataAggregate CreateAggregator(OnDemandProcessingContext odpContext, DataAggregateInfo aggregateDef)
        {
            DataAggregate prototype = this.GetPrototype(aggregateDef);

            return(prototype.ConstructAggregator(odpContext, aggregateDef));
        }
Пример #4
0
        public override void Update(object[] expressions, IErrorContext iErrorContext)
        {
            object obj = expressions[0];

            AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode typeCode = DataAggregate.GetTypeCode(obj);
            if (!DataAggregate.IsNull(typeCode))
            {
                if (!DataAggregate.IsVariant(typeCode) || DataTypeUtility.IsSpatial(typeCode))
                {
                    iErrorContext.Register(ProcessingErrorCode.rsMinMaxOfNonSortableData, Severity.Warning);
                    throw new ReportProcessingException(ErrorCode.rsInvalidOperation);
                }
                if (this.m_currentMin == null)
                {
                    this.m_currentMin     = obj;
                    this.m_expressionType = typeCode;
                }
                else
                {
                    bool flag = default(bool);
                    int  num  = this.m_comparer.Compare(this.m_currentMin, obj, false, false, out flag);
                    if (!flag)
                    {
                        if (typeCode != this.m_expressionType)
                        {
                            iErrorContext.Register(ProcessingErrorCode.rsAggregateOfMixedDataTypes, Severity.Warning);
                            throw new ReportProcessingException(ErrorCode.rsInvalidOperation);
                        }
                        iErrorContext.Register(ProcessingErrorCode.rsMinMaxOfNonSortableData, Severity.Warning);
                    }
                    else if (num > 0)
                    {
                        this.m_currentMin     = obj;
                        this.m_expressionType = typeCode;
                    }
                }
            }
        }
        private void Add(DataAggregate aggregator)
        {
            int aggregateType = (int)aggregator.AggregateType;

            this.m_prototypes[aggregateType] = aggregator;
        }