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); |