-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.vb
66 lines (57 loc) · 2.88 KB
/
Program.vb
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
Imports System.IO
Imports DevExpress.DataAccess.ConnectionParameters
Imports DevExpress.DataAccess.Sql
Imports DevExpress.XtraReports.Expressions
Imports DevExpress.XtraReports.Parameters
Imports DevExpress.XtraReports.UI
Namespace Reporting_Date_Range_Report_Parameters
Friend Module Program
''' <summary>
''' The main entry point for the application.
''' </summary>
<STAThread>
Sub Main()
CreateAndShowReport()
End Sub
Private Sub CreateAndShowReport()
' Create a date range parameter.
Dim dateRangeParam = New Parameter()
dateRangeParam.Name = "dateRange"
dateRangeParam.Description = "Date Range:"
dateRangeParam.Type = GetType(Date)
' Create a RangeParametersSettings instance and set up its properties.
Dim dateRangeSettings = New RangeParametersSettings()
' Specify the start date and end date parameters.
dateRangeSettings.StartParameter.Name = "dateRangeStart"
dateRangeSettings.StartParameter.ExpressionBindings.Add(New BasicExpressionBinding("Value", "AddYears(Today(), -1)"))
dateRangeSettings.EndParameter.Name = "dateRangeEnd"
dateRangeSettings.EndParameter.ExpressionBindings.Add(New BasicExpressionBinding("Value", "AddYears(Today(), 0)"))
' 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.
Dim report = New XtraReport1()
report.Parameters.Add(dateRangeParam)
' Use the parameter to filter the report's data.
report.FilterString = "GetDate([UpdatedOrderDate]) Between(?dateRangeStart,?dateRangeEnd)"
ConfigureDataSource(report)
report.ShowRibbonPreviewDialog()
End Sub
Private Sub ConfigureDataSource(report As XtraReport)
Dim projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName
Dim databasePath = Path.Combine(projectDirectory, "nwind.db")
Dim connectionParameters = New SQLiteConnectionParameters(databasePath, "")
Dim dataSource = New SqlDataSource(connectionParameters)
Dim ordersQuery = New CustomSqlQuery()
ordersQuery.Name = "Orders"
ordersQuery.Sql = "SELECT
OrderID,
CustomerID,
OrderDate,
strftime('%Y', 'now') || substr(OrderDate, 5) AS UpdatedOrderDate
FROM Orders;"
dataSource.Queries.Add(ordersQuery)
report.DataSource = dataSource
report.DataMember = "Orders"
End Sub
End Module
End Namespace