| PowerTools ActiveReports for .NET 11.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > セクションレポートのチュートリアル > データ > 実行時にレポートデータソースを変更する |
ActiveReportsでは、ローカルコンピュータのサンプルデータベースの場所に基づいて、レポートのデータソースを実行時に変更できます。
このトピックでは、以下のタスクを行います。
![]() |
メモ: このチュートリアルはNWindデータベース(Nwind.mdb)を使用しています。使用にはNorthWindデータベース(..\ActiveReportsNET11\Data)へのアクセス権限が必要です。 |
チュートリアルを完了すると、次のレポートが作成されます。
Visual StudioプロジェクトにActiveReportを追加する
詳細については、「プロジェクトにレポートを追加する」を参照してください。
レポートをデザイン時のデータソースに接続する
![]() |
ヒント: 実行時にデータソースを変更しても、デザイン時に設定したデータソースを使用して[レポートエクスプローラ]からレポート上にバウンドフィールドをドラッグすることができます。 |
| SQLクエリ |
コードのコピー
|
|---|---|
| SELECT * FROM Products | |
レポートのレイアウトを作成する
TextBox1 (ProductID)
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 0, 0 in |
| Size | 0.5, 0.2 in |
TextBox2 (ProductName)
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 0.6, 0 in |
| Size | 2.8, 0.2 in |
TextBox3 (UnitsInStock)
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 3.5, 0 in |
| Size | 0.5, 0.2 in |
| Alignment | Right |
TextBox4 (UnitsOnOrder)
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 4.1, 0 in |
| Size | 0.5, 0.2 in |
| Alignment | Right |
TextBox5 (UnitPrice)
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 4.7, 0 in |
| Size | 0.9, 0.2 in |
| Alignment | Right |
| OutputFormat | Currency |
データベースへのパスを設定する
![]() |
メモ: 次の手順は、レジストリ配下にパスが格納されている事を前提にしています。 |
Visual Basic
| Visual Basicコード (コードの先頭に張り付けます) |
コードのコピー
|
|---|---|
Imports Microsoft.Win32 |
|
| Visual Basicコード (レポートクラス内に貼り付けます) |
コードのコピー
|
|---|---|
Private Function getDatabasePath() As String
Dim regKey As RegistryKey
regKey = Registry.LocalMachine
regKey = regKey.CreateSubKey("SOFTWARE\GrapeCity\ActiveReports 11")
getDatabasePath = CType(regKey.GetValue(""), String)
End Function
|
|
C#
| C#コード (コードの先頭に貼り付けます) |
コードのコピー
|
|---|---|
using Microsoft.Win32; |
|
| C#コード (レポートクラス内に貼り付けます) |
コードのコピー
|
|---|---|
private string getDatabasePath()
{
RegistryKey regKey = Registry.LocalMachine;
regKey = regKey.CreateSubKey("SOFTWARE\\GrapeCity\\ActiveReports 11");
return ((string)(regKey.GetValue("")));
}
|
|
実行時にデータソースを変更するためにコードを追加する
実行時にデータソースを変更します。
Visual Basic
| Visual Basicコード (ReportStartイベントの上に貼り付けます) |
コードのコピー
|
|---|---|
Dim conn As System.Data.OleDb.OleDbConnection Dim reader As System.Data.OleDb.OleDbDataReader |
|
| Visual Basicコード (ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
Dim dbPath As String = getDatabasePath()
Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbPath + "\\NWIND.mdb"
conn = New System.Data.OleDb.OleDbConnection(connString)
Dim cmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM Products WHERE UnitPrice = 1540", conn)
conn.Open()
reader = cmd.ExecuteReader()
Me.DataSource = reader
|
|
C#
| C#コード (ReportStartイベントの上に貼り付けます) |
コードのコピー
|
|---|---|
private static System.Data.OleDb.OleDbConnection conn; private static System.Data.OleDb.OleDbDataReader reader; |
|
| C#コード (ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
string dbPath = getDatabasePath();
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbPath + "\\NWIND.mdb";
conn = new System.Data.OleDb.OleDbConnection(connString);
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("SELECT * FROM Products WHERE UnitPrice = 1540", conn);
conn.Open();
reader = cmd.ExecuteReader();
this.DataSource = reader;
|
|
データ接続を切るためにコードを追加する
Visual Basic
| Visual Basicコード (ReportEndイベント内に貼り付けます) |
コードのコピー
|
|---|---|
reader.Close() conn.Close() |
|
C#
| C#コード (ReportEndイベント内に貼り付けます) |
コードのコピー
|
|---|---|
reader.Close(); conn.Close(); |
|
レポートを表示する