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); } if (this.m_currentTotal == null) { this.m_currentTotalType = typeCode; this.m_currentTotal = obj; } else { this.m_currentTotal = DataAggregate.Add(this.m_currentTotalType, this.m_currentTotal, typeCode, obj); } } }
public override void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(Max.m_declaration); IScalabilityCache scalabilityCache = reader.PersistenceHelper as IScalabilityCache; while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.ExpressionType: this.m_expressionType = (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode)reader.ReadEnum(); break; case MemberName.CurrentMax: this.m_currentMax = reader.ReadVariant(); break; case MemberName.Comparer: { int id = reader.ReadInt32(); this.m_comparer = (AspNetCore.ReportingServices.ReportProcessing.ReportProcessing.ProcessingComparer)scalabilityCache.FetchStaticReference(id); break; } default: Global.Tracer.Assert(false); break; } } }
public override void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(Sum.m_declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.ExpressionType: this.m_expressionType = (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode)reader.ReadEnum(); break; case MemberName.CurrentTotalType: this.m_currentTotalType = (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode)reader.ReadEnum(); break; case MemberName.CurrentTotal: this.m_currentTotal = reader.ReadVariant(); break; default: Global.Tracer.Assert(false); break; } } }
public override void Init() { this.m_currentCount = 0u; this.m_sumOfXType = AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Null; this.m_sumOfX = null; this.m_sumOfXSquared = null; }
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++; } }
protected static object Square(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode xType, object x) { if (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Double == xType) { return((double)x * (double)x); } if (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Decimal == xType) { return((decimal)x * (decimal)x); } Global.Tracer.Assert(false); throw new ReportProcessingException(ErrorCode.rsInvalidOperation); }
protected static void ConvertToDoubleOrDecimal(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode numericType, object numericData, out AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode doubleOrDecimalType, out object doubleOrDecimalData) { if (AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Decimal == numericType) { doubleOrDecimalType = AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Decimal; doubleOrDecimalData = numericData; } else { doubleOrDecimalType = AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Double; doubleOrDecimalData = DataTypeUtility.ConvertToDouble(numericType, numericData); } }
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.rsInvalidExpressionDataType, Severity.Warning); throw new ReportProcessingException(ErrorCode.rsInvalidOperation); } if (!this.m_distinctValues.ContainsKey(obj)) { this.m_distinctValues.Add(obj, null); } } }
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_currentMax == null) { this.m_currentMax = obj; this.m_expressionType = typeCode; } else { bool flag = default(bool); int num = this.m_comparer.Compare(this.m_currentMax, 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_currentMax = obj; this.m_expressionType = typeCode; } } } }
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.IsSpatial(typeCode)) { iErrorContext.Register(ProcessingErrorCode.rsUnionOfNonSpatialData, Severity.Warning); throw new ReportProcessingException(ErrorCode.rsInvalidOperation); } if (this.m_expressionType == AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Null) { this.m_expressionType = typeCode; } else if (typeCode != this.m_expressionType) { iErrorContext.Register(ProcessingErrorCode.rsUnionOfMixedSpatialTypes, Severity.Warning); throw new ReportProcessingException(ErrorCode.rsInvalidOperation); } if (this.m_currentUnion == null) { this.m_expressionType = typeCode; this.m_currentUnion = obj; } //else if (this.m_expressionType == AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.SqlGeometry) //{ // this.m_currentUnion = ((SqlGeometry)this.m_currentUnion).STUnion((SqlGeometry)obj); //} //else //{ // this.m_currentUnion = ((SqlGeography)this.m_currentUnion).STUnion((SqlGeography)obj); //} } }
public override void Init() { this.m_expressionType = AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Null; this.m_currentUnion = null; }
protected static bool IsVariant(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode typeCode) { return(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.ByteArray != typeCode); }
protected static bool IsNull(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode typeCode) { return(AspNetCore.ReportingServices.ReportProcessing.DataAggregate.DataTypeCode.Null == typeCode); }