Информация о выпуске FastCube Net 2021.1
Новые возможности
Добавлено расширение FastReport.BG
Добавлен компонент ListDataSet позволяющий загружать в куб данные используя Windows Forms Data Binding
Добавлена возможность загружать данные в куб используя механизм Windows Forms Data Binding, испольующийста в стандартных элементах упровения: DataGridView, ListView и Combobox.
Windows Forms Data Binding работает с данными посредством компонента BindingSource
, который выступает в роли прокси (больше информации по теме можно найти в MSDN).
Далее приведен небольшой пример загрузки данных из List<>
.
- Объявляем класс ProductInfo
public class ProductInfo
{
public String Name { get; set; }
public String Group { get; set; }
public int Count { get; set; }
}
- Создаем список записей ProductInfo
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}
};
}
- Настраиваем Cube и slice
private void Form1_Load(object sender, EventArgs e)
{
// настраиваем источник данных
listDataSet1.DataSource = CreateProducts();
// подгружаем данные в Cube
cube1.Active = true;
// настраиваем 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();
}
В результате получаем следующий вид:
Полный пример расположен в каталоге Demos\C#\DataBindings
.
Другие изменения
- В контекстное меню XAxisZone, YAxisZone компонента SliceGrid добавлен пункт Copy, копирующий в буфер обмена заголовок выбраного узла
- В выпадающих списках вставка из буфера осуществляет поиск значения
- При двойном клике по значению в выпадающем фильтре измерения осуществляется позиционирование на это значение в SliceGrid