ActiveReports for .NET 18.0J
XMLベースレポート(RPX)
ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > セクションレポートのチュートリアル > データ > XMLベースレポート(RPX)

ActiveReportsでは、スクリプトを組み込んだレポートを作成でき、このレポートをXMLベースのRPXファイル形式で保存することが可能です。RPXファイルとして保存されたレポートにスクリプトを組み込むことで、リコンパイルせずに後からレポートをロード、実行、またはビューワコントロールに表示することができます。このチュートリアルでは、以下の作業を行います。

メモ: このチュートリアルは、Northwindデータベース(NWind.mdb)のテーブルを使用しています。使用にはNorthwindデータベース(..ActiveReportsNET18\Samples\Data\NWind.mdb)へのアクセス権限が必要です。

チュートリアルを完了すると、次のレポートが作成されます。

デザイン時のレイアウト

実行時のレイアウト

メモ: アプリケーションに適切なライセンスを組み込むには、「アプリケーションのライセンスの組み込み」を参照してください。

Visual StudioプロジェクトにActiveReportを追加する

  1. Visual Studioで新規プロジェクトを開きます。
  2. [プロジェクト]メニューから [新しい項目の追加]を選択します。
  3. [新しい項目の追加]ダイアログで[ActiveReports 18.0Jセクションレポート(XML)]を選択し、ファイルの名前を「rptScript」に変更します。 
  4. [追加]ボタンをクリックします。
  5. [ソリューションエクスプローラー]で、[rptScript.rpx]ファイルを選択し、[プロパティ]ウィンドウにある[ビルドアクション]プロパティを[埋め込まれたリソース]に設定します。

詳細については「クイックスタート」を参照してください。

レポートのレイアウトを作成する

  1. Visual Studioツールボックスで、[ActiveReports 18セクション]ノードを展開します。「TextBox」コントロールをdetailセクション上に3つ追加し、各テキストボックスのプロパティを以下のように設定します。

    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
  2. コントロール下の余白をクリックしてDetailセクションを選択します。[プロパティ]ウィンドウからCanShrinkプロパティを「True」に設定して空白のスペースを除去します。

コントロールのデータを取得するためにスクリプトを追加する

  1. レポートデザイナの下部にある[スクリプト]タブをクリックし、[スクリプト]エディタを開きます。
  2. [スクリプト]エディタで以下のスクリプトを追加します。
    注意: FieldCollectionには、DataInitializeイベントまたはFetchDataイベントを使用してアクセスしてください。他のイベントからアクセスした場合、動作は保障されません。

    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\ActiveReportsNET18\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\ActiveReportsNET18\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();
    }
    
    

隔行で色を変更するスクリプトを追加する

  1. レポートデザイナの下部にある[スクリプト]タブをクリックし、[スクリプト]エディタを開きます。
  2. 隔行でDetailセクションの色を変更させるために、以下のスクリプトを追加します。

    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コントロールで開きます。

関連トピック