ActiveReports Developer 7
Run Time Data Sources
See Also Support Forum
ActiveReports Developer 7 > ActiveReports Developer Guide > Samples and Walkthroughs > Walkthroughs > Section Report Walkthroughs > Run Time or Ad Hoc Reporting > Run Time Data Sources

Glossary Item Box

ActiveReports allows you to change the data source of a report at run time. This walkthrough illustrates how to change the data source at run time.

This walkthrough is split up into the following activities:

Note: This walkthrough uses the Northwind database. By default, in ActiveReports, the Northwind.mdb file is located at [User Documents folder]\ComponentOne Samples\ActiveReports Developer 7\Data\NWIND.mdb.

When you complete this walkthrough you get a layout that looks similar to the following at design time and at runtime.

Design Time Layout


Runtime Layout


ShowTo add an ActiveReport to the Visual Studio project

  1. Create a new Visual Studio project.
  2. From the Project menu, select Add New Item.
  3. In the Add New Item dialog that appears, select ActiveReports 7 Section Report (code-based) and in the Name field, rename the file as rptModifyDS.
  4. Click the Add button to open a new section report in the designer.

See Adding an ActiveReport to a Project for information on adding different report layouts.

ShowTo connect the report to a data source

Tip: Even if you will change the data source at run time, setting a design time data source allows you to drag fields onto the report from the Report Explorer.
  1. On the detail section band, click the Data Source Icon.
  2. In the Report Data Source dialog that appears, on the OLE DB tab, next to Connection String, click the Build button.
  3. In the Data Link Properties window that appears, select Microsoft Jet 4.0 OLE DB Provider and click the Next button to move to the Connection tab.
  4. Click the ellipsis (...) button to browse to your database, for example the NWind.mdb sample database. Click Open once you have selected the appropriate database path.
  5. Click the Test Connection button to see if you have successfully connected to the database.
  6. Click OK to close the Data Link Properties window and return to the Report Data Source dialog. Notice that the Connection String field gets filled automatically.
  7. In the Query field on the OLE DB tab, enter the following SQL query.
    SQL Query Copy Code
    SELECT * FROM Products
  8. Click OK to save the data source and return to the report design surface.

ShowTo create a layout for the report

  1. On the design surface of the report, select the detail section and in the Properties window, set the CanShrink property to True.
  2. In the Report Explorer, expand the Fields node, then the Bound node. Drag the following fields onto the detail section and in the Properties window, set the following properties.

ShowTextBox1 (ProductID)

Property Name Property Value
Location 0, 0 in
Size 0.5, 0.2 in

ShowTextBox2 (ProductName)

Property Name Property Value
Location 0.6, 0 in
Size 2.8, 0.2 in

ShowTextBox3 (UnitsInStock)

Property Name Property Value
Location 3.5, 0 in
Size 0.5, 0.2 in
Alignment Right

ShowTextBox4 (UnitsOnOrder)

Property Name Property Value
Location 4.1, 0 in
Size 0.5, 0.2 in
Alignment Right

ShowTextBox5 (UnitPrice)

Property Name Property Value
Location 4.7, 0 in
Size 0.9, 0.2 in
Alignment Right
OutputFormat Currency

ShowTo change the data source at run time

To change the data source at run time

  1. Double-click in the gray area below rptModifyDS to create an event-handling method for the ReportStart event.
  2. Add code to the handler to change the data source at run time.

ShowTo write the code in Visual Basic.NET

The following example shows what the code for the method looks like.

Visual Basic.NET code. Paste JUST ABOVE the ReportStart event. Copy Code
Dim conn As System.Data.OleDb.OleDbConnection
Dim reader As System.Data.OleDb.OleDbDataReader
Visual Basic.NET code. Paste INSIDE the ReportStart event. Copy Code
Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "C:\Users\[YourUserName]\Documents\ComponentOne Samples\ActiveReports Developer 7\Data\NWIND.mdb"
conn = New System.Data.OleDb.OleDbConnection(connString)
Dim cmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM Products WHERE UnitPrice = 18", conn)
conn.Open()
reader = cmd.ExecuteReader()
Me.DataSource = reader
                   

ShowTo write the code in C#

The following example shows what the code for the method looks like.

C# code. Paste JUST ABOVE the ReportStart event. Copy Code
private static System.Data.OleDb.OleDbConnection conn;
private static System.Data.OleDb.OleDbDataReader reader;
C# code. Paste INSIDE the ReportStart event. Copy Code
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Users\[YourUserName]\Documents\ComponentOne Samples\ActiveReports Developer 7\Data\NWIND.mdb";
conn = new System.Data.OleDb.OleDbConnection(connString);
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("SELECT * FROM Products WHERE UnitPrice = 18", conn);
conn.Open();
reader = cmd.ExecuteReader();
this.DataSource = reader;
                   

ShowTo close the data connection

ShowTo write the code in Visual Basic

  1. In design view of rptModifyDS, drop down the field at the top left of the code view and select (rptModifyDS Events).
  2. Drop down the field at the top right of the code view and select ReportEnd. This creates an event-handling method for ReportEnd event.
  3. Add code to the handler to close the data connection.

The following example shows what the code for the method looks like.

Visual Basic.NET code. Paste INSIDE the ReportEnd event. Copy Code
reader.Close()
conn.Close()

ShowTo write the code in C#

  1. Click in the gray area below rptModifyDS to select the report.
  2. Click the events icon in the Properties Window to display available events for the report.
  3. Double-click ReportEnd. This creates an event-handling method for the ReportEnd event.
  4. Add code to the handler to close the data connection.

The following example shows what the code for the method looks like.

C# code. Paste INSIDE the ReportEnd event. Copy Code
reader.Close();
conn.Close();

ShowTo view the report

  • Click the preview tab to view the report at design time.

OR

See Also

©2014. ComponentOne, a division of GrapeCity. All rights reserved.