ActiveReportsでは、ローカルコンピュータのサンプルデータベースの場所に基づいて、レポートのデータソースを実行時に変更できます。
このトピックでは、以下のタスクを行います。
チュートリアルを完了すると、次のレポートが作成されます。
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 18") 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 18"); 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(); |
レポートを表示する