In der Version 2021.1 wurde die Komponente ListDataSet 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.