-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form1.cs
67 lines (54 loc) · 2.72 KB
/
Form1.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
using System;
using System.Windows.Forms;
using DevExpress.XtraReports.Parameters;
using DevExpress.XtraReports.Expressions;
using DevExpress.XtraReports.UI;
using DevExpress.DataAccess.Sql;
using DevExpress.DataAccess.ConnectionParameters;
using System.IO;
namespace Reporting_Date_Range_Report_Parameters {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
// Create a date range parameter.
var dateRangeParam = new Parameter();
dateRangeParam.Name = "dateRange";
dateRangeParam.Description = "Date Range:";
dateRangeParam.Type = typeof(System.DateTime);
// Create a RangeParametersSettings instance and set up its properties.
var dateRangeSettings = new RangeParametersSettings();
// Specify the start date and end date parameters.
dateRangeSettings.StartParameter.Name = "dateRangeStart";
dateRangeSettings.StartParameter.ExpressionBindings.Add(
new BasicExpressionBinding("Value", "AddYears(Today(), -6)")
);
dateRangeSettings.EndParameter.Name = "dateRangeEnd";
dateRangeSettings.EndParameter.ExpressionBindings.Add(
new BasicExpressionBinding("Value", "AddYears(Today(), -5)")
);
// Assign the settings to the parameter's ValueSourceSettings property.
dateRangeParam.ValueSourceSettings = dateRangeSettings;
// Create a report instance and add the parameter to the report's Parameters collection.
var report = new XtraReport1();
report.Parameters.Add(dateRangeParam);
// Use the parameter to filter the report's data.
report.FilterString = "GetDate([OrderDate]) Between(?dateRangeStart,?dateRangeEnd)";
configureDataSource(ref report);
report.ShowPreview();
}
private void configureDataSource(ref XtraReport1 report) {
var projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
var databasePath = Path.Combine(projectDirectory, "nwind.db");
var connectionParameters = new SQLiteConnectionParameters(databasePath, "");
var dataSource = new SqlDataSource(connectionParameters);
var ordersQuery = new CustomSqlQuery();
ordersQuery.Name = "Orders";
ordersQuery.Sql = "SELECT * FROM Orders";
dataSource.Queries.Add(ordersQuery);
report.DataSource = dataSource;
report.DataMember = "Orders";
}
}
}