【VB.NET】帳票作成ツール ActiveReportsの使い方(DataTable使用・プレビュー画面作成)

20230326-activereports-howto-sumne
スポンサーリンク

どうも、あおです。

 

 

ActiveReportsの使用方法がわからなくて、

色々やってみて、とりあえずできたのでメモしておきます。

 

今回作成するポイントは以下

・レポートのDataSourceにDataTableをセット

・メインFormとは別にプレビューFormを作成

・メインFormのボタンクリックでプレビューを表示

 

 

 

 

1. ActiveReportsのvbファイルを追加

 

ソリューションエクスプローラーのプロジェクトの上で

右クリックして、新しい項目を追加。

ActiveReportsのファイル(拡張子が.vb)を選択して追加します。

今回はこのファイルの名前を「rpt1」とします。

 

 

 

2. 追加したファイルでレイアウト作成

 

追加したファイルに線やテキストオブジェクトを追加して、

つくりたいレイアウトを作成します。

 

 

 

 

3. プレビュー用フォーム作成

 

ソリューションエクスプローラーのプロジェクトの上で

右クリックして、新しいフォームを追加します。

今回はこのフォームの名前を「arpPreview」とします。

 

そのデザイン画面で、左のツールボックスからActivereportsの

Viewerコントロールをフォーム上にドラッグ&ドロップします。

今回はこのコントロールの名前を「arvRep」と設定します。

 

 

 

 

 

4. プレビュー用フォームにコード記載

 

プレビューフォームにコードを追加します。

 

上部に以下のImportを追加します。

Imports GrapeCity.ActiveReports

 

Class内に以下のように追加します。

Protected pReport As GrapeCity.ActiveReports.SectionReport
Protected pReportName As String

Private ReadOnly Property ActiveReport() As SectionReport
    Get
        Return New rpt1()
    End Get
End Property

Public Property Report() As GrapeCity.ActiveReports.SectionReport
    Get
        Return Me.pReport
    End Get
    Set(ByVal value As GrapeCity.ActiveReports.SectionReport)
        Me.pReport = value
    End Set
End Property

Public Property ReportName() As String
    Get
        Return Me.pReportName
    End Get
    Set(ByVal value As String)
        Me.pReportName = value
    End Set
End Property

Public Sub New()

    Me.New(Nothing)

End Sub

Public Sub New(ByVal rep As GrapeCity.ActiveReports.SectionReport)

    Me.New(String.Empty, rep)

End Sub

Public Sub New(ByVal repName As String, ByVal rep As GrapeCity.ActiveReports.SectionReport)

    ' この呼び出しはデザイナーで必要です。
    InitializeComponent()

    ' InitializeComponent() 呼び出しの後で初期化を追加します。
    Me.pReprtName = repName
    Me.pReport = rep

End Sub

 

 

 

さらに、Loadイベントに以下のように追記します。

Private Sub arpPreview_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Me.arvRep.Document = Me.pReport.Document
    Me.Text = Me.ReportName

End Sub

 

 

 

 

5. メインフォームを追加

 

プレビュー画面を呼び出すメインフォームを追加します。

 

ソリューションエクスプローラーのプロジェクトの上で

右クリックして、新しいフォームを追加します。

今回はこのフォームの名前を「main」とします。

 

左のツールボックスからボタンを追加します。

任意のボタン名を設定します。

 

 

 

 

6. メインフォームにコード記載

 

メインフォームにコードを追加します。

 

上部に以下のImportを追加します。

Imports GrapeCity.ActiveReports

 

 

Class内に以下のように追加します。

Private ReadOnly Property ActiveReport() As SectionReport
    Get
        Return New rpt1()
    End Get
End Property

 

 

 

そして、ボタンのクリック処理に以下を記載します。

'DataTableの宣言やセット等...
Dim dt As New DataTable("SOKO")

'列追加
dt.Columns.Add("SOKOCD")
dt.Columns.Add("NYCASESU")
dt.Columns.Add("NYBARASU")

'行の設定
Dim dtRow As DataRow
dtRow = dt.NewRow
dtRow("SOKOCD") = "01"
dtRow("NYCASESU") = "5"
dtRow("NYBARASU") = "100"

'行追加
dt.Rows.Add(dtRow)

Dim rep As GrapeCity.ActiveReports.SectionReport = Me.ActiveReport

rep.DataSource = dt
rep.run

Dim arpView As New arpPreview
arpView.Report = rep
arpView.ReportName = Me.Text
arpView.Show()

 

 

DataTableの設定はサンプルです。

自身で必要な設定など行ってください。

 

arpView.ReportName = Me.Text

上記の記載は、プレビュー画面のタイトルに

メイン画面の画面名を反映する為に実施しています。

不要であれば消してください。

 

 

 

 

7. レポートファイルにDataTableのフィールドを設定

 

レポートファイルのデザイン画面を開き、

該当のテキストオブジェクトのDataFieldに

メインフォームで作成したDataTableのカラム名を設定します。

(テキストオブジェクトを右クリックして、プロパティ押下から

DataFieldを設定できます。)

 

 

 

これで実行すると、メインフォームに作成したボタン押下で、

データが反映されたプレビュー画面が表示されます。