Adicionamos a extensão FastReport Business Graphics. É um novo produto para visualização interativa de dados de aplicativos.
Mais sobre o FastReport Business Graphics for .NET
Adicionando o componente ListDataSet que permite carregar dados para o cubo usando o Windows Forms Data Binding.
Agora é possível carregar dados para o Cube usando o Windows Forms Complex Data Binding, que é usado com controles padrão: DataGridView, ListView e Combobox.
O Complex Data Binding carrega dados por meio do componente BindingSource, que atua como um proxy (mais informações podem ser encontradas no MSDN).
Aqui está um pequeno exemplo de carregamento de uma List <> de dados.
1. Declare a classe ProductInfo
public class ProductInfo { public String Name { get; set; } public String Group { get; set; } public int Count { get; set; } }
2. Crie uma lista de registros 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} }; }
3. Configure o cubo e o slice
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(); }
Aqui está o resultado:
O exemplo completo está em Demos\C#\DataBindings.
Outras mudanças:
- Adicionando o item de menu "Copiar" ao menu de contexto de XAxisZone e YAxisZone do componente SliceGrid. O item do menu copia a legenda do nó selecionado para a área de transferência.
- A operação de colar da área de transferência em uma lista pop-up executa a operação de pesquisa.
- Clique duas vezes no filtro pop-up de uma dimensão para executar o posicionamento do SliceGrid no item clicado.