In diesem Update haben wir uns darauf konzentriert, die Berechnungen zu beschleunigen, die Kompatibilität mit .NET 9 zu verbessern und die Änderungen verständlicher zu machen.
Eine der wichtigsten Verbesserungen ist der Verzicht auf den Typ „Variante“ zugunsten der invarianten Mathematik. Diese Änderung führt zu einer erheblichen Beschleunigung der Erstellung und Neuberechnung von Würfeln, in einigen Fällen um mehr als das Doppelte schneller!
Außerdem funktioniert der Würfel jetzt in verschiedenen Lokalisierungen korrekt, auch in nicht standardisierten Lokalisierungen (außer Latein), was seine Verwendung für internationale Benutzer erweitert.
FastCube .NET Updates sind nun produktweise (WinForms, Web, Mono und das gesamte FastCube .NET) verteilt. Dadurch wird der Update-Prozess transparenter. Sie sehen sofort, welche Änderungen die von Ihnen benötigte Version betreffen.
Zuvor wurden komprimierte Dateien in einigen Fällen nicht korrekt verarbeitet, was dazu führen konnte, dass Daten falsch oder gar nicht geladen wurden.
Dieser Fehler wurde nun behoben und der Umgang mit komprimierten Dateien erfolgt vollständig korrekt. Dadurch erreichten wir:
Wenn Ihr Projekt die Datenkomprimierung aktiv verwendet, empfehlen wir ein Upgrade auf Version 2025.2, um etwaige Probleme zu vermeiden.
Zuvor wurde die Dateisignatur als static
deklariert, wodurch sie während der Programmausführung geändert werden konnte. In einigen Fällen kann dies zu Fehlern im Zusammenhang mit Datenstrukturänderungen oder sogar Dateibeschädigungen führen.
Änderungen in der neuen Version:
const
bekanntgegeben, wodurch sie auf der Code-Ebene unveränderlich bleibt.Dies ist besonders wichtig für die Entwickler, die in Mehrbenutzer- und verteilten Systemen arbeiten.
Eine der wichtigsten Verbesserungen ist die Hinzufügung der .NET 9-Unterstützung. FastCube .NET ist jetzt vollständig mit der neuesten Version der Plattform kompatibel, so dass Sie die Vorteile der neuen Funktionen und Erweiterungen von Microsoft nutzen können. Dies ist ein wichtiges Update für die Entwickler, die auf .NET 9 umstellen oder planen, es in ihren Projekten zu verwenden.
Wir möchten gesondert darauf hinweisen, dass die Unterstützung neuer Versionen die Stabilität des Produkts und die Integration mit den neuesten Technologien gewährleistet.
Als Hauptversion gilt nun die .NET 8, die den aktuellen Standard für die meisten Unternehmensprojekte entspricht. Die .NET 6-Unterstützung wurde jedoch beibehalten, da es sich hierbei um eine Langzeitversion mit erweiterter Unterstützung handelt.
Darüber hinaus wurde, wie bereits erwähnt, die .NET 9-Unterstützung hinzugefügt, sodass Sie bei der Auswahl der Plattform für die Arbeit mit FastCube .NET flexibel sind, egal ob Sie Stabilität (in .NET 6) oder die neuesten Funktionen und Leistungsverbesserungen (.NET 9) wünschen.
Im Demobeispiel für das boolean
Format wurde ein Fehler behoben, durch den die korrekte Anzeige der Daten beeinträchtigt wurde. Dieses Format funktioniert nun korrekt und verursacht keine Fehler, was die Arbeit mit den Demobeispielen für die Benutzer erleichtert.
Im Demowürfel "Sales by months" wurden früher die Titel falsch angezeigt. Jetzt wurde dieser Fehler behoben und die Feldnamen werden korrekt angezeigt, was die Genauigkeit und die Benutzerfreundlichkeit beim Umgang mit Daten gewährleistet.
Eine der wichtigsten Verbesserungen ist die Optimierung des Datenserialisierungsprozesses. Es wurden neue Methoden hinzugefügt und Eigenschaften festgelegt, so dass Standardwerte nun seltener serialisiert werden.
Durch die Verringerung der Menge der serialisierten Daten wird das System beim Speichern und Laden von Informationen entlastet. Außerdem erhöhen diese Änderungen die Leistung, was sich besonders bei der Bearbeitung von großen Datenmengen bemerkbar macht.
[Common]
- Ein Fehler wurde behoben, bei dem der Stream aus einer komprimierten Datei falsch gelesen wurde;
* Die Dateisignatur für den Würfel hat jetzt einen konstanten Modifikator (const) anstelle eines statischen (static) und kann nicht geändert werden;
[Common]
- Ein Fehler wurde behoben, bei dem der Stream aus einer komprimierten Datei falsch gelesen wurde;
* Die Dateisignatur für den Würfel hat jetzt einen konstanten Modifikator (const) anstelle eines statischen (static) und kann nicht geändert werden;
[Common]
- Ein Fehler wurde behoben, bei dem der Stream aus einer komprimierten Datei falsch gelesen wurde;
* Die Dateisignatur für den Würfel hat jetzt einen konstanten Modifikator (const) anstelle eines statischen (static) und kann nicht geändert werden;
[Common]
+ Die Kompatibilität mit .NET 9 wurde hinzugefügt;
+ .NET-Versionen wurden aktualisiert, wobei die Hauptversion jetzt .NET 8 ist und Zielplattformen wie .NET 6, .NET 8 und .NET 9 unterstützt werden;
* Einige Eigenschaften wurden im WinForms-Editor vor dem Benutzer verborgen;
* Der Typ „Variante“ wurde durch Variantenmathematik ersetzt;
* Die Serialisierung wurde verbessert, Methoden wurden hinzugefügt und Eigenschaften wurden so eingestellt, dass Standardwerte seltener serialisiert werden;
- Die Anzeige des Feldnamens wurde im Demowürfel "Sales by months" korrigiert;
- Ein Fehler wurde im Demobeispiel für Boolesches Format behoben.
Lagecy-Delegate wurden durch kompatible ersetzt, da der Variant
entfernt wurde und nun stattdessen Boxing durch Object
verwendet wird:
FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, FastReport.Olap.Utils.Variant, System.Int32)
FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, System.Int32)
FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], FastReport.Olap.Utils.Variant[], System.Int32)
Veraltete Felder. Die folgenden Felder wurden durch die entsprechenden Eigenschaften ersetzt
FastReport.Olap.Types.BoolValue -> public System.Boolean Value
FastReport.Olap.Types.ByteValue -> public System.Byte Value
FastReport.Olap.Types.DateTimeValue -> public System.DateTime Value
FastReport.Olap.Types.DecimalValue -> public System.Decimal Value
FastReport.Olap.Types.DoubleValue -> public System.Double Value
FastReport.Olap.Types.FloatValue -> public System.Single Value
FastReport.Olap.Types.IntValue -> public System.Int32 Value
FastReport.Olap.Types.LongValue -> public System.Int64 Value
FastReport.Olap.Types.SByteValue -> public System.SByte Value
FastReport.Olap.Types.ShortValue -> public System.Int16 Value
FastReport.Olap.Types.StringValue -> public System.String Value
FastReport.Olap.Types.TimeSpanValue -> public System.TimeSpan Value
FastReport.Olap.Types.UIntValue -> public System.UInt32 Value
FastReport.Olap.Types.ULongValue -> public System.UInt64 Value
FastReport.Olap.Types.UShortValue -> public System.UInt16 Value
FastReport.Olap.Slice.MeasureCell -> public FastReport.Olap.Utils.Variant Value
Veraltete Methoden wurden durch kompatible Methoden ersetzt, aber anstelle des Typs Variant
wird nun Data Boxing durch Object
verwendet, wodurch Sie nicht Werte mit Speicherkopien, sondern einen Link auf ein Objekt übergeben können.
FastReport.Olap.Types.BoolDTP -> public FastReport.Olap.Types.BoolValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.ByteDTP -> public FastReport.Olap.Types.ByteValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.CommonDataTypeProcessor``2<T, T2> -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.CommonDataTypeProcessor``2<T, T2> -> public T VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.DateTimeDTP -> public FastReport.Olap.Types.DateTimeValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.DecimalDTP -> public FastReport.Olap.Types.DecimalValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.DoubleDTP -> public FastReport.Olap.Types.DoubleValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.FloatDTP -> public FastReport.Olap.Types.FloatValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.IntDTP -> public FastReport.Olap.Types.IntValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.LongDTP -> public FastReport.Olap.Types.LongValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.Range -> public System.Boolean Match(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.Ranges -> public System.Boolean Match(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.SByteDTP -> public FastReport.Olap.Types.SByteValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.ShortDTP -> public FastReport.Olap.Types.ShortValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.StringDTP -> public FastReport.Olap.Types.StringValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.TimeSpanDTP -> public FastReport.Olap.Types.TimeSpanValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.UIntDTP -> public FastReport.Olap.Types.UIntValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.ULongDTP -> public FastReport.Olap.Types.ULongValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Types.UShortDTP -> public FastReport.Olap.Types.UShortValue VariantToValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Slice.AxisContainer -> public FastReport.Olap.Utils.Variant GetValue(System.Int32, System.Int32)
FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, FastReport.Olap.Utils.Variant)
FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection)
FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32)
FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValue(System.Int32)
FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValueFromRecord(System.Int32)
FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, FastReport.Olap.Utils.Variant&)
FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(FastReport.Olap.Utils.Variant, System.Boolean)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32)
FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32)
FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, System.Int32)
FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField)
FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, FastReport.Olap.Utils.Variant&)
FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant&)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public T2 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32)
FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetTotalValueForDims(System.Int32, System.String)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(System.Int32)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetValue(System.Int32, System.Int32)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetTotalValueForDims(System.Int32, System.String)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(System.Int32)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(FastReport.Olap.Utils.Variant)
FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetTotalValueForDims(System.String)
FastReport.Olap.Code.Measures -> public FastReport.Olap.Utils.Variant GetDetailValue(System.Int32, System.String)
Veraltete Eigenschaften. Die folgenden Eigenschaften wurden so geändert, dass nun Boxing anstelle des Typs Variant
verwendet wird:
FastReport.Olap.Types.BoolValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.ByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.DateTimeValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.DecimalValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.DoubleValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.FloatValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.IntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.LongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant HighRange { public get; public set; }
FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant LowRange { public get; public set; }
FastReport.Olap.Types.SByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.ShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.StringValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.TimeSpanValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.UIntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.ULongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Types.UShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; }
FastReport.Olap.Slice.CalculateMeasureEventArgs -> FastReport.Olap.Utils.Variant Data { public get; public set; }
FastReport.Olap.Slice.CalculateValueEventArgs -> FastReport.Olap.Utils.Variant Value { public get; public set; }
FastReport.Olap.Slice.SliceField -> FastReport.Olap.Utils.Variant CurrentValue { public get; }
FastReport.Olap.Code.ContainerFieldItem -> FastReport.Olap.Utils.Variant CurrentValue { public get; }
FastReport.Olap.Code.Dimension -> FastReport.Olap.Utils.Variant CurrentValue { public get; }
FastReport.Olap.Code.Dimensions -> FastReport.Olap.Utils.Variant DetailValue { public get; }
FastReport.Olap.Code.Measure -> FastReport.Olap.Utils.Variant CurrentValue { public get; }
Veraltete Typen. Die folgenden Typen sind veraltet und wurden vollständig entfernt, da sie nicht mehr verwendet werden.
FastReport.Olap.Utils.Variant
FastReport.Olap.Types.IVariantable
FastReport.Olap.Types.UnAssigned
Die neuen Delegate ersetzen die alten, die den Typ Variant
verwenden.
FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, System.Object, System.Object, System.Int32)
FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, System.Object, System.Int32)
FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], System.Object[], System.Int32)
Das neue Feld hat die bestehenden ersetzt, jetzt wird anstelle des Typs Variant
das Boxing durch Object
verwendet.
FastReport.Olap.Slice.MeasureCell -> public System.Object Value
Die neuen Methoden haben die alten Methoden ersetzt, die den Typ Variant
verwendet haben. Jetzt wird stattdessen Boxing verwendet und die Datenübertragung erfolgt per Link statt per Wert, was die Geschwindigkeit deutlich erhöht.
FastReport.Olap.Types.Range -> public System.Boolean Match(System.Object)
FastReport.Olap.Types.Ranges -> public System.Boolean Match(System.Object)
FastReport.Olap.Slice.AxisContainer -> public System.Object GetValue(System.Int32, System.Int32)
FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, System.Object)
FastReport.Olap.Slice.Slice -> public System.Object CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection)
FastReport.Olap.Slice.Slice -> public System.Object GetMeasureValue(System.Int32, System.Int32)
FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValue(System.Int32)
FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValueFromRecord(System.Int32)
FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, System.Object&)
FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(System.Object, System.Boolean)
FastReport.Olap.Cube.BaseDataReaderDataSet -> public System.Object GetValue(System.Int32)
FastReport.Olap.Cube.BaseDataSet -> public System.Object GetValue(System.Int32)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(System.Object)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(System.Object)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(System.Object)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByOrder(System.Int32)
FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByValueId(System.Int32)
FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, System.Int32)
FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField)
FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, System.Object&)
FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, System.Object&)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, System.Object)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, System.Object)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, System.Object)
FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, System.Object)
FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.IBaseDataSet -> public System.Object GetValue(System.Int32)
FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 GetValueIdAtValue(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValue(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValueFromParentValue(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public T2 GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Object GetVariantByOrder(System.Int32)
FastReport.Olap.Cube.UniqueValues``2<T, T2> -> public System.Object GetVariantByValueId(System.Int32)
FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(System.Object)
FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object)
FastReport.Olap.Code.Measure -> public System.Object GetColOffsetTotalValueForDims(System.Int32, System.String)
FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Int32)
FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Object)
FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetValue(System.Int32, System.Int32)
FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32)
FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetTotalValueForDims(System.Int32, System.String)
FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Int32)
FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Object)
FastReport.Olap.Code.Measure -> public System.Object GetTotalValueForDims(System.String)
FastReport.Olap.Code.Measures -> public System.Object GetDetailValue(System.Int32, System.String)
Neue Eigenschaften haben die veralteten Eigenschaften ersetzt bzw. ergänzt:
FastReport.Olap.Types.BoolValue -> System.Boolean Value { public get; public set; }
FastReport.Olap.Types.ByteValue -> System.Byte Value { public get; public set; }
FastReport.Olap.Types.DateTimeValue -> System.DateTime Value { public get; public set; }
FastReport.Olap.Types.DecimalValue -> System.Decimal Value { public get; public set; }
FastReport.Olap.Types.DoubleValue -> System.Double Value { public get; public set; }
FastReport.Olap.Types.FloatValue -> System.Single Value { public get; public set; }
FastReport.Olap.Types.IntValue -> System.Int32 Value { public get; public set; }
FastReport.Olap.Types.LongValue -> System.Int64 Value { public get; public set; }
FastReport.Olap.Types.Range -> System.Object HighRange { public get; public set; }
FastReport.Olap.Types.Range -> System.Object LowRange { public get; public set; }
FastReport.Olap.Types.SByteValue -> System.SByte Value { public get; public set; }
FastReport.Olap.Types.ShortValue -> System.Int16 Value { public get; public set; }
FastReport.Olap.Types.StringValue -> System.String Value { public get; public set; }
FastReport.Olap.Types.TimeSpanValue -> System.TimeSpan Value { public get; public set; }
FastReport.Olap.Types.UIntValue -> System.UInt32 Value { public get; public set; }
FastReport.Olap.Types.ULongValue -> System.UInt64 Value { public get; public set; }
FastReport.Olap.Types.UShortValue -> System.UInt16 Value { public get; public set; }
FastReport.Olap.Slice.CalculateMeasureEventArgs -> System.Object Data { public get; public set; }
FastReport.Olap.Slice.CalculateValueEventArgs -> System.Object Value { public get; public set; }
FastReport.Olap.Slice.SliceField -> System.Object CurrentValue { public get; }
FastReport.Olap.Format.CustomFormat -> System.String DefaultFormatValue { public get; public set; }
FastReport.Olap.Code.ContainerFieldItem -> System.Object CurrentValue { public get; }
FastReport.Olap.Code.Dimension -> System.Object CurrentValue { public get; }
FastReport.Olap.Code.Dimensions -> System.Object DetailValue { public get; }
FastReport.Olap.Code.Measure -> System.Object CurrentValue { public get; }
Neue Typen:
FastReport.Olap.Utils.VMath
hat den Typ Variant ersetzt, jetzt werden die Berechnungen durch invariante Berechnungen unter Verwendung von Boxing und Typkonvertierung durchgeführt.FastReport.Olap.Types.IValueStruct``1<T>
ist eine Schnittstelle zur Implementierung eines eigenen Boxing-Typs.FastReport.Olap.Types.SimpleCompareAction
ist eine Aufzählung für invariante mathematische Aktionstypen.
Das veraltete Feld wurde durch ein technisch kompatibles Feld ersetzt.
FastReport.Olap.Controls.SizingInfo -> public FastReport.Olap.Utils.Variant Data
Neues Feld:
FastReport.Olap.Controls.SizingInfo -> public System.Int32 Data