Mit der Veröffentlichung von 2025.2 ist das Ultimate .NET-Abonnement noch profitabler geworden! Alle Lizenznehmer haben ein zusätzliches Plug-in zum Importieren von Dokumenten aus Microsoft Word erhalten.
Gute Neuigkeiten für Inhaber einer FastReport VCL- oder FastReport .NET- Single-Lizenz!
Nur bis zum 30. April können Sie Ihre Lizenz mit einem starken 50 % Rabatt verlängern.
Das ist die perfekte Gelegenheit, wieder Zugriff auf alle aktuellen Updates, Verbesserungen und den technischen Support zu erhalten.
Und Sie sparen dabei eine beachtliche Summe – ab 200 €!
Darum lohnt es sich:
Zurück im Spiel – nutzen Sie FastReport weiterhin mit voller Effizienz;
Sicher und stabil – die Verlängerung garantiert eine korrekte und sichere Funktion;
Volle Leistung – bleiben Sie immer auf dem neuesten Stand mit allen neuen Funktionen.
Warten Sie nicht zu lange – dieses Sonderangebot gilt nur für wenige Wochen! Kontaktieren Sie uns unter sales@fast-report.com um es auszunutzen.
Lernen Sie die neue Version 2025.2 für FastReport .NET: WinForms, WPF, Avalonia, Mono, WEB, Ultimate. Dieses Update bietet Ihnen die .NET 9-Unterstützung, eine Bibliothek zum Ausführen von C#-Skripten, ein Plugin zum Importieren von Word-Dokumenten, einen Apache Ignite-Connector, Designer- und Exportverbesserungen sowie neue Funktionen in WebReport.Verpassen Sie nicht die Gelegenheit, FastReport .NET zu aktualisieren und Ihre Möglichkeiten zu erweitern!
Dokumente aus Word importieren
Der FastReport .NET Ultimate-Komponentensatz enthält jetzt ein Plugin, mit dem Sie Microsoft Word-Dokumente (.docx) importieren können. Wenn Sie eine solche Datei öffnen, wird sie in eine FastReport .NET-Berichtsvorlage (.frx) umgewandelt.
Aufgrund der großen Unterschiede zwischen den Formaten ist es nicht immer möglich, zwei Dokumente vollständig anzugleichen. Mit diesem Plugin können Sie jedoch den Zeitaufwand für die Erstellung einer Vorlage auf der Grundlage einer vorhandenen docx-Datei erheblich reduzieren.
Zurzeit unterstützt unser Plugin folgendes nicht: Hintergrundhervorhebung eines Teils einer Linie, Shapes, sowie verschachtelte Vektorgrafiken, Vector Markup Language (VML) und OLE-Objekte.
Lesen Sie den Artikel
.NET 9-Unterstützung
Diese Plattform verbessert die Anwendungsleistung und fügt Ihren Projekten viele neue Funktionen hinzu. Es gibt mehr Unterstützung in diesem Update .NET 9 für:
FastReport .NET,
FastReport.Core,
FastReport.Core.Skia,
FastReport.WPF,
FastReport.Avalonia,
FastReport.Web,
FastReport.Web.Skia,
FastReport.Blazor.Wasm.
Wir haben die binäre Serialisierung aufgegeben. BinaryFormatter verursachte eine Reihe von Sicherheitsproblemen und Microsoft hat seine Verwendung in .NET 9 eingestellt. Unser Team hat auch die BinaryFormatter-Klasse aus dem Quellcode entfernt.
Mehr erfahren
Verbesserungen am Berichtsdesigner
In dieser Version wurden auch einige nützliche Funktionen eingeführt, die die Arbeit mit Berichten vereinfachen.
Im Objektinspektor können Sie jetzt mit den Tastenkombinationen Ctrl + C Daten aus der Liste der Objekteigenschaften schnell kopieren. So können Sie Objekteigenschaften zwischen verschiedenen Teilen eines Dokuments oder sogar zwischen verschiedenen Berichten leicht übertragen.
Darüber hinaus ist es jetzt möglich, Summen und Parameter unter Beibehaltung der Schachtelungshierarchie zu kopieren. Das bedeutet, dass beim Kopieren komplexer Datenstrukturen ihre ursprüngliche Gestaltung erhalten bleibt, so dass die Struktur nach dem Kopieren nicht mehr manuell neu aufgebaut werden muss.
Herstellen einer Verbindung mit Apache Ignite
Mit diesem Update wurde ein neues Plugin hinzugefügt, das die Arbeit mit Apache Ignite-Datenbanken bei der Erstellung von Berichten erheblich vereinfacht. Mit diesem Plugin können Sie Berichte direkt mit den angegebenen Datenbanken verbinden und so bequem auf die erforderlichen Daten für die Analyse und Visualisierung zugreifen.
Der Apache Ignite-Connector ist auf dem .NET Thin Client Ignite.NET implementiert. Er bietet die Möglichkeit, eine Verbindung mit den Apache Ignite-Clustern herzustellen, mit Caches (einschließlich SQL-Tabellen) zu arbeiten und verschiedene Datentypen zu verarbeiten.
Darüber hinaus unterstützt der Connector die Verbindung mit einem oder mehreren Apache Ignite-Knoten. Die Knotenadressen werden im Format host:port angegeben und durch Kommas getrennt. Die Verbindung ist sowohl mit der Authentifizierung (wenn authenticationEnabled in der Konfiguration verwendet wird) als auch ohne Authentifizierung möglich.
Der Connector unterstützt die Arbeit mit Schlüssel-Wert-Caches sowie mit SQL-Tabellen. Für Caches mit QueryEntity-Metadaten werden Operationen zum Abrufen einer Liste von Feldern und deren Datentypen unterstützt.
Lesen Sie den Artikel
Verbessertes Vorschaukonzept
In OutlineControl haben wir benutzerfreundliche Schaltflächen mit Symbolen zum Minimieren und Maximieren hinzugefügt. Diese Schaltflächen gab es schon vorher, aber ohne Symbole.
Darüber hinaus wurden Eigenschaften hinzugefügt, mit denen Sie die Breite und Höhe der Bildlaufleisten im Vorschaufenster ändern können.
Exportverbesserungen
Das Exportieren von Zahlen-, Währungs-, Datums-, Zeit- und Prozentformaten nach OpenOffice Calc (.ods) wurde hinzugefügt.
Mit diesem Update wurde auch das absatzweise Exportieren für Dateien im OpenOffice Writer-Format (.odt) eingeführt. Dies vereinfacht die Bearbeitung der generierten Dokumente und macht sie für den Menschen visuell nachvollziehbarer. Der neue Exportmodus ersetzt nicht den bestehenden Modus, sondern ergänzt ihn und erweitert seine Möglichkeiten.
Außerdem wurde die Option „Breite automatisch anpassen“ für MS Excel-Exporte hinzugefügt.
Dieser Exportmodus funktioniert nur mit bestimmten Werten der Textobjekteigenschaften: die Eigenschaften AutoWidth und AutoShrink sind aktiviert; der Wert der HorzAling-Eigenschaft ist beliebig, außer Justify.
Änderungen im WebReport
Suche im gesamten Bericht
Die Textsuche im gesamten Bericht wurde hinzugefügt, ähnlich wie in der Desktop-Version des Viewers. Wenn ein Wort auf einer anderen Seite gefunden wird, wechselt der Viewer automatisch zu dieser Seite. Die Suche ist in WebReport mit FastReport.Core, in WebReport für Blazor Server und in WebReport für Blazor Wasm verfügbar. Sie können die Anzeige der Suchschaltfläche mit der Eigenschaft
WebReport.Toolbar.ShowSearchButton = false;
verwalten.
Die Hervorhebungsfarbe der gefundenen Wörter kann mit der Eigenschaft
WebReport.Toolbar.SearchHighlight = Color.Red;geändert werden.
Verbesserungen in den Caching-Einstellungen für WebReport
Mit der Veröffentlichung der neuen Version verfügt WebReport über zusätzliche Optionen für die Caching- Einstellungen.
Erstens können Sie jetzt individuelle Caching-Parameter für jede spezifische WebReport-Instanz festlegen. Bisher waren nur allgemeine Einstellungen verfügbar, die in allen Berichten zur Anwendung kamen, was unpraktisch sein konnte, insbesondere wenn Sie bestimmte Berichte länger im Speicher behalten mussten. Mit der webReport.CacheOptions Eigenschaft können Sie die Cache-Verweildauer für einen bestimmten Bericht anpassen.
Zweitens bieten die Parameter AbsoluteExpirationDuration und AbsoluteExpiration mehr Flexibilität bei der Einstellung der Cache-Verweildauer eines Berichts. Zuvor wurde nur die CacheDuration Option verwendet, die auf einem gleitenden Prinzip beruhte: wenn ein Bericht eine bestimmte Zeit lang verwendet wurde, wurde der Timer zurückgesetzt und der Bericht blieb im Speicher. Dies kann dazu führen, dass der Bericht nie aus dem Cache gelöscht wird. Mit den neuen Parametern können Sie den genauen Zeitpunkt festlegen, zu dem ein Bericht unabhängig von seiner Verwendung dauerhaft aus dem Cache gelöscht werden soll. In diesem Fall können die CacheDuration Option und die neuen Parameter AbsoluteExpiration und AbsoluteExpirationDuration zusammen verwendet werden.
// Allgemeine Einstellungen für alle WebReport
services.AddFastReport(options =>
{
options.CacheOptions.CacheDuration = TimeSpan.FromMinutes(10);
options.CacheOptions.AbsoluteExpirationDuration = TimeSpan.FromMinutes(20);
});
// Individuelle WebReport-Einstellungen mit höherer Priorität
webReport.CacheOptions = new WebReportCacheOptions()
{
CacheDuration = // ...,
AbsoluteExpiration = DateTime.Now.AddMinutes(30),
// oder
AbsoluteExpirationDuration = // ...
};
Aktualisierte ASP .NET Core Demo-Webanwendung
Wir haben unsere Demo-Anwendung auf ASP .NET Core aktualisiert, so dass das Produkt Sie nicht nur mit seiner Funktionalität, sondern auch mit seinem Aussehen begeistern wird. Die aktualisierte Anwendung ist unter folgendem Link verfügbar.
Online-Vorführung
Aktualisierte Online Designer Demoanwendung
Darüber hinaus haben wir die Demoanwendung des Online Designer aktualisiert, in der Sie weitere Beispiele unserer Berichte finden, exportieren und den aktualisierten Online-Designer daran ausprobieren können. Die aktualisierte Anwendung ist unter folgendem Link verfügbar.
Kostenlos testen
FastScript .NET-Unterstützung
Es wurde die Möglichkeit hinzugefügt, ein Berichtsskript mit FastScript .NET auszuführen.
FastScript .NET ist eine C#-Skriptbibliothek, die von CodeDOM/Roslyn unabhängig ist und in den Umgebungen verwendet werden kann, in denen keine Codegenerierung (Native AOT, iOS, WASM) erlaubt ist.
FastScript .NET ist in den folgenden FastReport .NET: WinForms, WPF, Avalonia, Mono, WEB, Ultimate.
Um FastScript .NET zusammen mit FastReport .NET zu verwenden:
fügen Sie zu Ihrer Anwendung einen Link auf das FastReport.Plugins.FastScript-NuGet-Paket hinzu;
führen Sie den folgenden Code vor der ersten Verwendung der Report-Klasse aus:
FastReport.Code.CodeProvider.DefaultProvider = typeof(FastReport.Code.FastScript.FastScriptCodeProvider);
Alle Berichte verwenden nun FastScript .NET, um Ausdrücke auszuwerten und den Berichtscode auszuführen.
FastScript .NET unterstützt weder die VB.NET-Skriptsprache noch den dynamischen Typ. Einige Berichte, die das Objekt „Erweiterte Matrix“ verwenden, funktionieren nicht.
Eine ausführliche Dokumentation zu FastScript .NET finden Sie unter diesem Link.
Onlinedokumentation
Vollständige Liste der Änderungen
[Engine][Engine]+ Eine neue FastScript .NET Skript-Engine wurde hinzugefügt;+ Die Unterstützung für vertikale Tabs wurde hinzugefügt; + Das Importieren von DOCX-Dokumenten wurde zur Berichtsvorlage hinzugefügt;+ Die Unterstützung für die chinesische (vereinfachte) Sprachkodierung wurde beim RTF-Konvertieren hinzugefügt;+ Die Möglichkeit wurde hinzugefügt, die Integration mit der FastReport Cloud zu deaktivieren;+ Der GS1 Datamatrix Barcode wurde hinzugefügt;+ Das Konvertieren von SkBitmap zu Bitmap und Image wurde zu FastReport.SkiaDrawing hinzugefügt;- In der zh-tw-Kodierung wurde ein Fehler mit RichObject behoben;- Ein Fehler wurde bei der gleichzeitigen Kompilierung des Berichtsskripts bei der Erstellung von Berichten in mehreren Threads behoben;- Ein Fehler wurde behoben, der beim Drucken einer leeren Matrix auftrat;- Ein Fehler wurde bei der Übergabe von Nullwerten an MS SQL-Abfrageparameter behoben;- Fehler wurden bei der Kompilierung von Bibliotheken unter .NET 9 behoben;- Ein Fehler wurde behoben, der eine Endlosschleife verursachte, wenn die „StartNewPage“ Eigenschaft des untergeordneten Bands „Seitenkopf“ oder „Spaltenkopf“ aktiviert war;- Ein Fehler wurde behoben, der zu einer System.ArgumentException bei der Verbindung mit MySQL führte;- Bei der Berechnung des Seitenausdrucks PrintableExpression wurde ein Fehler behoben;- Ein Fehler wurde behoben, der zu einer System.NullReferenceException in der Methode Report.GetParameterValue führte;
[Designer]+ Die Möglichkeit wurde hinzugefügt, Daten aus der Eigenschaftenliste des Objekts mit den Hotkeys Strg + C zu kopieren;+ Die Möglichkeit wurde hinzugefügt, Summen und Parameter unter Beibehaltung der Verschachtelungshierarchie zu kopieren;* Im Fenster „Berichtseite öffnen“ kann nur die *.frx-Datei ausgewählt werden;* Die Registerkarte mit gesperrten Einstellungen wird in den Mono-Designer-Einstellungen (Seite Code) ausgeblendet;* Die Logik der Stilverarbeitung von .rtf-Dateien wurde beim Öffnen im Designer geändert;- Ein Fehler wurde behoben, bei dem ein PictureObject-Bild nach Rücknahme von Änderungen im Designer verschwand, wenn eine vorbereitete Seite bearbeitet wurde;- Ein Fehler des Suchfilters wurde im Datenbaum behoben, der den aktuellen Suchstatus zurücksetzte;- Der Kontextmenüpunkt „Neuer Dialog“ wurde in der Community-Version entfernt, dessen Auswahl zu einer unbehandelten Ausnahme führte;- Ein Fehler wurde beim Starten der Vorschau von Berichten im Designer behoben;- Die System.InvalidOperationException wurde beim Löschen einer Datenquellenspalte korrigiert, wenn diese Spalte nicht mehr in der Datenbank vorhanden ist;- Das falsche Lesen des GS1 DataMatrix-Barcodes als DataMatrix wurde korrigiert;- Ein Fehler wurde bei der Auswahl der Platzierung von Bandspalten im Fenster „Spalteneditor“ behoben;- Das Löschen von Objekten und Kategorien aus der Seitenleiste wurde im Designer korrigiert;- Der Anzeigefehler von Symbolen, der mit AvaloniaUI 11.1 auftrat, wurde behoben;- Ein Fehler wurde behoben, bei dem beim Hinzufügen der IsNull-Funktion über den „Texteditor“ ein zusätzliches Komma hinzugefügt wurde;
[Preview]+ Zum Senden von Berichten per E-Mail wurde eine Schaltfläche hinzugefügt, wenn MAPI in der Vorschau in WPF verwendet wird;+ Zu OutlineControl wurden Schaltflächen mit Symbolen zum Minimieren und Maximieren hinzugefügt;+ Die Möglichkeit wurde hinzugefügt, die Breite und Höhe der Bildlaufleiste über den Code zu ändern;- Ein Fehler mit falschem Papierformat wurde bei Druckern ohne die „Passend auf Seite“ Option behoben, wenn im Fenster „Drucken“ die Schaltflächen „Einstellungen“ und dann „Erweitert“ gedrückt wurden; - In der Vorschau wurde das Deaktivieren der Speichern-Schaltfläche des erstellten Berichts behoben;- In der Vorschau wurde das Deaktivieren der Registerkarte „Speicher“ im Speichermenü von Berichten behoben;- Bei fehlenden Filtern wurde ein Fehler der „Erweiterten Matrix“ behoben;- Ein Fehler wurde behoben, bei dem das Druckformular beim Drücken von Strg + P nicht in der Vorschau angezeigt wurde;
[Exports]+ Beim Exportieren nach PDF/A wird ebenso die „Autor“ Eigenschaft exportiert;+ Die Unterstützung für den HTML-Tag des geschützten Leerzeichens wurde beim Excel-Export hinzugefügt;+ Das Exportieren von Zahlen-, Währungs-, Datums-, Zeit- und Prozentformaten nach OpenOffice Calc (.ods) wurde hinzugefügt;+ Die Option „Breite automatisch anpassen“ wurde beim MS Excel-Export hinzugefügt;+ Ein neuer Modus zum Exportieren von Absätzen wurde zu OpenOffice Writer-Dokumenten (.odt-Format) hinzugefügt;* Jetzt wird beim Excel-Export von Seiten mit der Eigenschaft ExportAlias das Suffix "-n" nicht an den Blattnamen angehängt, wenn es möglich ist;- Ein Fehler wurde behoben, bei dem der Schriftname ohne Anführungszeichen in das HTML-Format exportiert wurde;- In FastReport.Core wurden Fehler einiger benutzerdefinierten Schriftarten behoben;- Ein HTML-Exportfehler wurde behoben, bei dem der Barcode-Rahmen nicht angezeigt wurde;- Ein Fehler wurde beim Öffnen von Dateien beim Exportieren eines Berichts mit Sonderzeichen in die ODT- und ODS-Formate behoben;- Die falsche Anzeige und das fehlerhafte Exportieren einiger Unicode-Symbole wurden in Skia/Avalonia behoben;- Das Exportieren von TableObject-Füllungen wurde beim PDF-Export korrigiert;- Das Exportieren von TableObject-Füllungen und Seiten wurde beim HTML-Export korrigiert;- Das Höhenexportieren für verbundene Zellen wurde beim Excel-Export hinzugefügt;
[WebReport]+ Die Suche in WebReport wurde für ASP.NET hinzugefügt;+ Die Suche in WebReport wurde für Blazor WASM hinzugefügt;+ Die .NET 9-Unterstützung wurde für FastReport.Blazor.Wasm hinzugefügt;+ Die Möglichkeit wurde hinzugefügt, eine Verbindung mit gespeicherten Prozeduren in WebReport herzustellen;- Es wurde ein Problem behoben, das die Änderung der DataConnection nach ihrer Erstellung im OnlineDesigner verhinderte;- Die Konvertierung von TextObject in SVG wurde bei der Vorschau in Blazor korrigiert;- Die Unterstützung für Size CommandParameter wurde korrigiert;- Das Rendering von Seitenwechsel-Schaltflächen wurde in Blazor korrigiert, wenn sie deaktiviert sind; - Ein Fehler wurde behoben, bei dem der Wert des RouteBasePath Parameters bei der Konfiguration von WebReport nicht berücksichtigt wurde;
[.NET Core]+ Der Filter für Verbindungstabelle wurde hinzugefügt;+ Die JsonConnectionType Klasse wurde hinzugefügt, um in der JsonDataConnection.GetConnectionType Methode verwendet zu werden. Die GetConnectionType() und GetParameterType() Methoden wurden zum JsonDataConnection-Connector hinzugefügt;- Ein Kodierungsfehler wurde beim Verbinden einer CSV-Datendatei für einen Bericht in .NET Core behoben;
[Common]* Die Breite des Fensters „Über das Programm...“ wurde geändert;
[Extras]+ Die Möglichkeit wurde hinzugefügt, eine Verbindung mit Apache Ignite herzustellen;
[Demos]+ Die UsedPackages.version-Datei wurde für WPF-Pakete hinzugefügt;- Die Avalonia- und WPF-Namen wurden beim Ausführen der Demoanwendung korrigiert.
Wir freuen uns, die Veröffentlichung von bekannt zu geben FastReport Business Graphics .NET! In diesem Update haben wir uns auf die Verbesserung der Kompatibilität und der Unterstützung für moderne Plattformen sowie auf die Vorbereitung auf zukünftige Versionen von .NET konzentriert.
Kompatibilität mit .NET 9
Eine der wichtigsten Änderungen ist das Hinzufügen der erforderlichen Attribute zu den Komponenten, um die vollständige Kompatibilität mit .NET 9 sicherzustellen. Dies bedeutet, dass FastReport Business Graphics .NET ab jetzt in den aktuellsten Umgebungen ordnungsgemäß funktioniert und dabei die Stabilität, Leistung und Unterstützung für alle neuen Funktionen des Frameworks gewährleistet.
Wenn Sie eine Umstellung auf .NET 9 planen oder es bereits in Ihren Projekten verwenden, können Sie sicher sein, dass unsere Komponenten ohne zusätzliche Anpassungen einsatzbereit sind!
Aktualisieren unterstützter .NET-Versionen
Wir haben die Liste der Zielplattformen aktualisiert und uns dabei auf die Anforderungen moderner Entwickler konzentriert:
.NET 8 gilt nun als Hauptversion. Es ist ein stabiles und produktives Framework, das für die meisten Projekte empfohlen wird.
Wir unterstützen Ihre .NET 6 Version weiter, wenn Sie keine Aktualisierung durchgeführt haben und eine langfristige Unterstützung (LTS) haben.
Für Entwickler, die die neuesten Technologien und Funktionen nutzen möchten, wurde die .NET 9-Unterstützung hinzugefügt.
Dank dieser Änderungen bleibt FastReport Business Graphics .NET ein relevantes Tool für die Arbeit mit Geschäftsgrafiken in Ihren Projekten.
Liste der Änderungen
[Common] + Zu den Komponenten wurden Attribute hinzugefügt, die für die Kompatibilität mit .NET 9 erforderlich sind;+ Die .NET-Versionen wurden aktualisiert, die .NET 8 Version gilt jetzt als Hauptversion und die unterstützten Zielplattformen umfassen .NET 6, .NET 8 und .NET 9.
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.
Umstellung auf invariante Mathematik. Bis zu 2 Mal schneller!
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.
Produktweise Verteilung von Änderungen
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.
Behobener Fehler beim Lesen eines Streams aus einer komprimierten Datei
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:
korrektes Lesen von Daten aus Archivdateien.
einen stabileren Betrieb beim Herunterladen großer Dateien.
Vermeidung von Fehlern im Multithread-Modus, was besonders für Webanwendungen wichtig ist.
Wenn Ihr Projekt die Datenkomprimierung aktiv verwendet, empfehlen wir ein Upgrade auf Version 2025.2, um etwaige Probleme zu vermeiden.
Die Dateisignatur für den Würfel ist jetzt unveränderlich (const statt static)
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:
Die Signatur wird jetzt als const bekanntgegeben, wodurch sie auf der Code-Ebene unveränderlich bleibt.
Die Integrität der Dateistruktur ist unabhängig von Änderungen im Programmcode gewährleistet.
Der Umgang mit Cube-Dateien ist in verschiedenen Umgebungen, einschließlich Web und Mono stabiler geworden.
Dies ist besonders wichtig für die Entwickler, die in Mehrbenutzer- und verteilten Systemen arbeiten.
Kompatibilität mit .NET 9
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.
Aktualisierung der unterstützten Versionen von .NET
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.
Korrekturen und Verbesserungen im Demobeispiel
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.
Verbesserte Datenserialisierung
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.
Lister der Änderungen
FastCube .NET WinForms
[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;
FastCube .NET Web
[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;
FastCube .NET Mono
[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;
FastCube .NET
[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.
Weitere kritische Änderungen
Allgemeine Änderungen für FastCube Web, FastCube WinForms und FastCube Mono
Lagecy-Delegate wurden durch kompatible ersetzt, da der Variant entfernt wurde und nun stattdessen Boxing durch Object verwendet wird:
Klicken Sie hier, um zu erweitern
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
Klicken Sie hier, um zu erweitern
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.
Klicken Sie hier, um zu erweitern
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:
Klicken Sie hier, um zu erweitern
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.
Klicken Sie hier, um zu erweitern
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:
Klicken Sie hier, um zu erweitern
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.
Änderungen für FastCube WinForms und FastCube Mono
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
Ab dem 1. April 2025 ist eine Lizenzoption für FastReport .NET und FastReport VCL verfügbar.
Die „Business“-Lizenz ist für Entwicklerteams von 5 bis 12 Personen konzipiert und eignet sich perfekt, wenn die „Team“-Lizenz zu klein und die „Site“-Lizenz zu groß ist.
Was bietet die neue Lizenzoption noch?
Persönlicher Manager
Prioritärer Support
Build-Server
Zugriff auf Wissensdatenbank und Produkt-Webinare
Frühzeitiger Zugriff auf Sonderangebote
Persönlicher Rabatt und Vorzugskonditionen bei der Abonnementverlängerung
Zugriff für bis zu 12 Entwickler an einer geografischen Adresse
Verfügbar in 32 Sprachen
Dokumentation in zwei Sprachen: Englisch und Deutsch
Wählen Sie die für Sie passende Option
Voller Preis
Wir freuen uns, die Veröffentlichung einer plattformübergreifenden Bibliothek zur Ausführung komplexer Skripte in C # namens FastScript .NET bekannt zu geben.
Bibliotheken zum Ausführen komplexer Skripte bieten die Möglichkeit, Code dynamisch zu generieren und auszuführen, was in verschiedenen Szenarien nützlich sein kann, z. B. beim Entwickeln von Plugins, Erstellen von Benutzerskripten usw.
Arbeiten in eingeschränkten Umgebungen. FastScript .NET basiert auf dem klassischen "Lexer-Parser-Interpreter" -Modell. Es verwendet keine Kompilierung zum maschinellen Code, sodass es in Umgebungen betrieben werden kann, in denen die Codegenerierung eingeschränkt ist (NativeAOT, iOS, WASM). Seine Leistung ist vergleichbar mit anderen Lösungen, die Interpretation verwenden (z. B. Lua und JavaScript), obwohl es langsamer ist als kompilierter C # -Code.
C# als Skriptsprache. FastScript .NET ist vollständig in die .NET-Plattform integriert und ermöglicht die Verwendung aller Bibliotheken, Frameworks und APIs. Eine einheitliche Codebasis in C # für Skripte macht die Pflege von Code in mehreren Sprachen überflüssig.
Kompaktheit. Die geringe Größe der Bibliothek (nur 300 KB) macht es bequem, auch in ressourcenbeschränkten Projekten zu verwenden, ohne das System zu überlasten.
Seit Version 2025.1.21 ist FastScript .NET Bestandteil der Pakete WinForms, WPF, WEB, Mono und Avalonia. Unsere Bibliothek ist auch Teil von Ultimate.NET lösungen mit allen Quellcodes.
Mehr erfahren
Wir schenken Nutzern mit abgelaufenem Abonnement 50 % Rabatt auf FastReport .NET- und VCL-Team- und Site-Lizenzen. Bis zum 31. März erhalten Sie Zugriff auf neue Funktionen, einen verbesserten Designer und Support zum halben Preis – auch nach Ablauf Ihrer Karenzzeit!
Wir veröffentlichen zweimal jährlich Updates. Ein aktives Abonnement garantiert Ihnen daher Support für die neuesten Umgebungsversionen, Berichte mit ständig verbesserter Funktionalität und Benutzeroberfläche, Zugang zum technischen Support und vieles mehr.
Kontaktieren Sie uns, um Ihre veraltete Lizenz durch eine neue zu ersetzen!