Wir haben FastReport Business Graphics-Erweiterung hinzugefügt. Das ist das neue Produkt für die interraktive Visualisierung von Daten aus Anwendungen.
Mehr zu FastReport Business Graphics für .NET
Die Komponente ListDataSet wurde hinzugefügt, die das Laden von Daten in den Cube mit Hilfe von Windows Forms Data Binding ermöglicht.
Es ist jetzt möglich, Daten in den Cube mit Hilfe von Windows Forms komplexer Datenbindung zu laden, die in Standard-Steuerelementen verwendet wird: DataGridView, ListView und Combobox.
Complex Data Binding lädt Daten über die BindingSource-Komponente, die als Proxy agiert (weitere Informationen finden Sie im MSDN).
Hier ist ein kleines Beispiel für das Laden von Daten aus List<>.
1. Deklarieren Sie eine ProductInfo-Klasse
public class ProductInfo { public String Name { get; set; } public String Group { get; set; } public int Count { get; set; } }
2. Erstellen Sie eine Liste von ProductInfo-Datensätzen
List<ProductInfo> CreateProducts() { return new List<ProductInfo> { new ProductInfo {Group = "Bakery products", Name = "Ciabatta", Count = 3}, new ProductInfo {Group = "Bakery products", Name = "Bread", Count = 5}, new ProductInfo {Group = "Bakery products", Name = "Croissant", Count = 1}, new ProductInfo {Group = "Alcohol", Name = "Wine", Count = 6}, new ProductInfo {Group = "Alcohol", Name = "Whiskey", Count = 2}, new ProductInfo {Group = "Alcohol", Name = "Beer", Count = 5}, new ProductInfo {Group = "Dairy products", Name = "Yoghurt", Count = 5}, new ProductInfo {Group = "Dairy products", Name = "Milk", Count = 4} }; }
3. Cube und Slice konfigurieren
private void Form1_Load(object sender, EventArgs e) { // configure data source listDataSet1.DataSource = CreateProducts(); // load data to Cube cube1.Active = true; // configure Slice slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Group")); slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Name")); var measure = new FastReport.Olap.Slice.MeasureField(slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByName("Count")); slice1.MeasuresContainer.AddMeasure(measure); slice1.XAxisContainer.AddMeasuresField(); }
Hier ist das Ergebnis:
Das vollständige Beispiel befindet sich in Demos\C#\DataBindings.
Weitere Änderungen:
- Menüpunkt "Kopieren" zum Kontextmenü von XAxisZone und YAxisZone der Komponente SliceGrid wurde hinzugefügt. Der Menüpunkt kopiert die Beschriftung des ausgewählten Knotens in die Zwischenablage.
- Einfügen aus der Zwischenablage in einer Popup-Liste führt eine Suchoperation aus.
- Doppelklick im Popup-Filter einer Dimension führt die SliceGrid-Positionierung auf das angeklickte Element aus.