ActiveReportsでは、スクリプトを組み込んだレポートを作成でき、このレポートをXMLベースのRPXファイル形式で保存することが可能です。RPXファイルとして保存されたレポートにスクリプトを組み込むことで、リコンパイルせずに後からレポートをロード、実行、またはビューワコントロールに表示することができます。このチュートリアルでは、以下の作業を行います。
チュートリアルを完了すると、次のレポートが作成されます。
Visual StudioプロジェクトにActiveReportを追加する
詳細については「クイックスタート」を参照してください。
レポートのレイアウトを作成する
TextBox1
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | ProductName |
| Text | 商品名 |
| Location | 0, 0in |
| Size | 2.3, 0.2in |
TextBox2
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | QuantityPerUnit |
| Text | 数量 |
| Location | 2.4, 0in |
| Size | 1.5, 0.2in |
TextBox3
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | UnitsInStock |
| Text | 在庫 |
| Location | 4, 0in |
| Size | 1, 0.2in |
コントロールのデータを取得するためにスクリプトを追加する
Visual Basic
| Visual Basicスクリプト([スクリプト]エディタ内に貼り付けます) |
コードのコピー
|
|---|---|
Private Shared m_cnn As System.Data.OleDb.OleDbConnection
Public Sub ActiveReport_ReportStart()
'レポートをデータソースに接続します。
Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\ActiveReportsNET16\Samples\Data\Nwind.mdb"
Dim sqlString As String = "SELECT * FROM products"
m_cnn = new System.Data.OleDb.OleDbConnection(connString)
Dim m_Cmd As System.Data.OleDb.OleDbCommand = new System.Data.OleDb.OleDbCommand(sqlString, m_cnn)
If m_cnn.State = System.Data.ConnectionState.Closed Then
m_cnn.Open
End If
rpt.DataSource = m_Cmd.ExecuteReader
End Sub
Public Sub ActiveReport_ReportEnd()
'データリーダーとの接続を閉じる
m_cnn.Close
End Sub
|
|
C#
| C#スクリプト([スクリプト]エディタ内に貼り付けます) |
コードのコピー
|
|---|---|
private static System.Data.OleDb.OleDbConnection m_cnn;
public void ActiveReport_ReportStart()
{
//レポートをデータソースに接続します。
string m_cnnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\ActiveReportsNET16\Samples\Data\Nwind.mdb";
string sqlString = "SELECT * FROM products";
m_cnn = new System.Data.OleDb.OleDbConnection(m_cnnString);
System.Data.OleDb.OleDbCommand m_Cmd = new System.Data.OleDb.OleDbCommand(sqlString, m_cnn);
if(m_cnn.State == System.Data.ConnectionState.Closed)
{
m_cnn.Open();
}
rpt.DataSource = m_Cmd.ExecuteReader();
}
public void ActiveReport_ReportEnd()
{
//データリーダーとの接続を閉じる
m_cnn.Close();
}
|
|
隔行で色を変更するスクリプトを追加する
Visual Basic
| Visual Basicスクリプト([スクリプト]エディタ内に貼り付けます) |
コードのコピー
|
|---|---|
Dim b as boolean = true Sub Detail1_Format if b then Me.Detail1.BackColor = Color.AliceBlue b= false else me.Detail1.BackColor = Color.Cyan b = true End If End Sub |
|
C#
| C#スクリプト([スクリプト]エディタ内に貼り付けます) |
コードのコピー
|
|---|---|
bool color = true;
public void Detail1_Format()
{
if(color)
{
this.Detail1.BackColor = System.Drawing.Color.AliceBlue;
color = false;
}
else
{
this.Detail1.BackColor = System.Drawing.Color.Cyan;
color = true;
}
}
|
|
リソースからXMLベースのレポートをロードする
デザイン時にレポートを表示するには、プレビュータブをクリックするか、レポートをViewerコントロールで開きます。
Visual Basic
| Visual Basicスクリプト(Form_Loadイベントの内に貼り付けます) |
コードのコピー
|
|---|---|
Dim sectionReport As New GrapeCity.ActiveReports.SectionReport()
Dim xtr As New System.Xml.XmlTextReader("..\..\rptScript.rpx")
sectionReport.LoadLayout(xtr)
xtr.Close()
Viewer1.LoadDocument(sectionReport)
|
|
C#
| C#スクリプト(Form_Loadイベントの内に貼り付けます) |
コードのコピー
|
|---|---|
GrapeCity.ActiveReports.SectionReport sectionReport = new GrapeCity.ActiveReports.SectionReport(); System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(@"..\..\rptScript.rpx"); sectionReport.LoadLayout(xtr); xtr.Close(); viewer1.LoadDocument(sectionReport); |
|