-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMainWindow.xaml.cs
68 lines (59 loc) · 2.69 KB
/
MainWindow.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using DevExpress.DashboardCommon;
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using System.Windows;
namespace WpfDashboard_SqlDataSource
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Dashboard dashboard = CreateDashboard();
dashboardControl1.Dashboard = dashboard;
}
private IDashboardDataSource CreateSqlDataSource()
{
DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("MySqlDataSource");
SelectQuery selectQuery = SelectQueryFluentBuilder
.AddTable("SalesPerson")
.SelectColumns("CategoryName", "SalesPerson", "OrderDate", "ExtendedPrice")
.Build("MyQuery");
sqlDataSource.Queries.Add(selectQuery);
return sqlDataSource;
}
private Dashboard CreateDashboard()
{
Dashboard dashBoard = new Dashboard();
IDashboardDataSource sqlDataSource = CreateSqlDataSource();
dashBoard.DataSources.Add(sqlDataSource);
ChartDashboardItem chart = new ChartDashboardItem();
chart.DataSource = sqlDataSource; chart.DataMember = "MyQuery";
chart.Arguments.Add(new Dimension("OrderDate", DateTimeGroupInterval.MonthYear));
chart.Panes.Add(new ChartPane());
SimpleSeries salesAmountSeries = new SimpleSeries(SimpleSeriesType.SplineArea);
salesAmountSeries.Value = new Measure("ExtendedPrice");
chart.Panes[0].Series.Add(salesAmountSeries);
GridDashboardItem grid = new GridDashboardItem();
grid.DataSource = sqlDataSource;
grid.DataMember = "MyQuery";
grid.Columns.Add(new GridDimensionColumn(new Dimension("SalesPerson")));
grid.Columns.Add(new GridMeasureColumn(new Measure("ExtendedPrice")));
dashBoard.Items.AddRange(chart, grid);
return dashBoard;
}
private void dashboardControl1_ConfigureDataConnection(object sender, DashboardConfigureDataConnectionEventArgs e)
{
CustomStringConnectionParameters parameters = e.ConnectionParameters as CustomStringConnectionParameters;
if (e.DataSourceName == "MySqlDataSource")
parameters.ConnectionString =
@"XpoProvider=MSSqlServer;Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\NWind.mdf;Integrated Security=True";
}
}
}