ActiveReportsでは、Overlayメソッドを使用することにより、既存のレポートにページテンプレートを適用できます。このチュートリアルでは、静的なレターヘッドレポートを使用し、ActiveReportのOverlayメソッドの使用方法を紹介します。
このトピックでは、以下のタスクを行います。
- Visual StudioプロジェクトにActiveReportを追加する
- rptDataをデータソースに接続する
- rptDataのレイアウトを作成する
- rptLetterheadのレイアウトを作成する
- コードを使用してrptDataとrptLetterheadのデータを重ね合わせる
- レポートを表示する
 |
メモ: このチュートリアル、Northwindデータベース(Nwind.mdb)のファイルを使用しています。Northwindデータベース(..ActiveReportsNET9\Data\Nwind.mdb)へのアクセス権限が必要です。 |
チュートリアルを完了すると、次のレポートが作成されます。
設計時のレイアウト (rptLetterhead)
設計時のレイアウト (rptData)
実行時のレイアウト
VisualStudioプロジェクトにActiveReportを追加する
- Visual Studioで新規プロジェクトを開きます。
- [プロジェクト]メニューから [新しい項目の追加]を選択します。
- [新しい項目を追加]ダイアログから[ActiveReports 9.0 セクションレポート(コード)]を選択し、ファイルの名前を「rptLetterhead」に変更します。
- [追加]ボタンをクリックします。
- [プロジェクト]メニューから [新しい項目の追加]を選択します。
- [新しい項目を追加]ダイアログから[ActiveReports 9.0 セクションレポート(コード)]を選択し、ファイルの名前を「rptData」に変更します。
- [追加]ボタンをクリックします。
詳細は、「プロジェクトにレポートを追加する」を参照してください。
rptDataをデータソースに接続する
- detailセクションのバンドから、データソースアイコンをクリックします。

- [レポートデータソース]ダイアログでは、[OLE DB]タブの接続文字列の横にあるに[作成]ボタンをクリックします。
- [データリンクプロパティ]ウィンドウでは、[Microsoft Jet 4.0 OLE DB Provider]を選択し、[次へ]ボタンをクリックし、[接続]タブへ移動します。
- (...)をクリックし、Nwind.mdbへのアクセスパスを参照します。アクセスパスを選択したら、[開く]をクリックします。
- [接続のテスト]ボタンをクリックし、データベースとの接続を確認します。
- [OK] をクリックし、[データリンクプロパティ]ウィンドウに戻ります。接続文字列が自動的に表示されることを確認します。
-
[OLE DB] タブの[クエリ]フィールドに以下のSQLクエリを入力します。
SQL Query |
コードのコピー
|
SELECT * FROM Customers ORDER BY Country |
- [OK] をクリックします。
rptDataのレイアウトを作成する
- [pageHeader]セクションを選択し、[プロパティ]ウィンドウからHeightプロパティを「0.65」に設定します (テンプレートのページヘッダーの高さと同じです)。
- 「デザイナ面」のグレーの領域を選択し、[プロパティ]ウィンドウからPrintWidthプロパティを「6.5」に設定します。
- レポートのデザイナ面を右クリックし、[挿入] > [グループヘッダ/フッタ]を選択し、グループヘッダ/フッタを追加します。
-
[GroupHeader]セクションを選択し、[プロパティ]ウィンドウから以下のプロパティを設定します。
プロパティ名 |
値 |
Name |
ghCustomers |
BackColor |
MediumSlateBlue |
CanShrink |
True |
DataField |
Country |
GroupKeepTogether |
FirstDetail |
KeepTogether |
True |
- ツールボックスから、[ghCustomers]上に以下のコントロールをドラッグし、[プロパティ]ウィンドウから以下のプロパティを設定します。
TextBox1
プロパティ名 |
値 |
DataField |
=Country + "の顧客"
(DataField) |
Size |
2, 0.2 in |
Location |
0, 0 in |
Font Bold |
True |
ForeColor |
White |
Font Size |
12 |
Label1
プロパティ名 |
値 |
Text |
顧客番号 |
Size |
0.9, 0.2 in |
Location |
0, 0.2 in |
Font Bold |
True |
ForeColor |
DarkSlateBlue |
Label2
プロパティ名 |
値 |
Text |
会社名 |
Size |
1, 0.2 in |
Location |
1, 0.2 in |
Font Bold |
True |
ForeColor |
DarkSlateBlue |
Label3
プロパティ名 |
値 |
Text |
住所 |
Size |
1, 0.2 in |
Location |
2.7, 0.2 in |
Font Bold |
True |
ForeColor |
DarkSlateBlue |
Label4
プロパティ名 |
値 |
Text |
市区町村 |
Size |
1, 0.2 in |
Location |
5.5, 0.2 in |
Font Bold |
True |
ForeColor |
DarkSlateBlue |
-
Detailセクションをクリックし、[プロパティ]ウィンドウから、以下のようにプロパティを設定します。
プロパティ名 |
値 |
BackColor |
LightGray |
CanShrink |
True |
- ツールボックスから、Detailセクションに以下のコントロールをドラッグし、各コントロールのプロパティを以下のように変更します。
TextBox1
プロパティ名 |
値 |
DataField |
CustomerID |
Size |
0.9, 0.2 in |
Location |
0, 0 in |
TextBox2
プロパティ名 |
値 |
DataField |
CompanyName |
Size |
1.7, 0.2 in |
Location |
1, 0 in |
TextBox3
プロパティ名 |
値 |
DataField |
Address |
Size |
2.8, 0.2 in |
Location |
2.7, 0 in |
TextBox4
プロパティ名 |
値 |
DataField |
City |
Size |
1, 0.2 in |
Location |
5.5, 0.2 in |
- [GroupFooter]セクションを選択し、[プロパティ]ウィンドウからHeightプロパティを「0」に設定します。
rptLetterheadのレイアウトの作成する
- 「デザイナ面」のグレーの領域を選択し、[プロパティ]ウィンドウからPrintWidthプロパティを「6.5」に設定します。
-
[PageHeader]セクションを選択し、[プロパティ]ウィンドウから以下のプロパティを設定します。
プロパティ名 |
値 |
BackColor |
DarkSlateBlue |
Height |
0.65 |
- ツールボックスから[PageHeader]セクション上に以下のコントロールをドラッグし、[プロパティ]ウィンドから以下のプロパティを設定します。
Label1
プロパティ名 |
値 |
Size |
6.5, 0.65 in |
Location |
0, 0 in |
Font Size |
36 |
Font Bold |
True |
ForeColor |
White |
Text |
GrapeCity |
- [PageFooter]セクションを選択し、[プロパティ]ウィンドウからBackColorプロパティを「DarkSlateBlue」に設定します。
- ツールボックスから[PageFooter]セクション上に「Label」コントロールをドラッグし、[プロパティ]ウィンドウから以下のプロパティを設定します。
コードを使用してrptDataとrptLetterheadのデータを重ね合わせる
Visual Basic
- WindowsフォームにActiveReportsの[Viewer]コントロールを追加します。Windowsフォームのタイトルバーをダブルクリックし、Form_Loadイベントのイベント処理メソッドを作成します。ハンドラにコードを追加し、以下の処理を行います。
- rptDataレポートドキュメントをViewerに設定する
- rptDataにrptLetterheadを重ね合わせる
Visual Basicコード(Form Loadイベント内に貼り付けます) |
コードのコピー
|
Dim rpt As New rptData()
rpt.Run()
Dim rpt2 As New rptLetterhead()
rpt2.Run()
Dim i As Integer
For i = 0 To rpt.Document.Pages.Count - 1
rpt.Document.Pages(i).Overlay(rpt2.Document.Pages(0))
Next
Viewer1.Document = rpt.Document
|
C#
- WindowsフォームにActiveReportsの[Viewer]コントロールを追加します。Windowsフォームのタイトルバーをダブルクリックし、Form_Loadイベントのイベント処理メソッドを作成します。ハンドラにコードを追加し、以下の処理を行います。
- rptDataレポートドキュメントをViewerに設定する
- rptDataにrptLetterheadを重ね合わせる
C#コード(Form Loadイベント内に貼り付けます) |
コードのコピー
|
rptData rpt = new rptData();
rpt.Run();
rptLetterhead rpt2 = new rptLetterhead();
rpt2.Run();
for(int i = 0; i < rpt.Document.Pages.Count; i++)
{
rpt.Document.Pages[i].Overlay(rpt2.Document.Pages[0]);
}
viewer1.Document = rpt.Document;
|
レポートを表示する