本チュートリアルでは、Tablixデータ領域において同じ値を持つセルを自動的に結合し、重複した値を非表示にする方法を順番に説明します。ここでは、店舗の店舗番号と各店長の名前を所在地域別・地区別にまとめた表を例に実装方法を説明します。
このトピックでは、以下のタスクを行います。
メモ:
- 本チュートリアルではReelsデータベース(Reels.mdb)を使用します。使用にはReelsデータベース(..\ActiveReportsNET14\Samples\Data\Reels.mdb)へのアクセス権限が必要です。
- このチュートリアルではRDLレポートを使用していますが、ページレポートでも同様の手順でデザイン時、実行時の実装が可能です。
本チュートリアルを完了すると、次のレポートが作成されます。
デザイン時のレイアウト
実行時のレイアウト
Visual StudioにActiveReportsのプロジェクトを作成する
- Visual Studioで新規プロジェクトを開きます。
- [新しいプロジェクト]ダイアログが表示されます。[ActiveReports 14.0J RDLレポート アプリケーション]を選択し、ファイル名をrptTablixに変更します。
- [OK]ボタンをクリックするとActiveReports 14.0J RDLレポート アプリケーションが新規作成されます。プロジェクトにはデフォルトでRDLレポートが追加されています。
レポートレイアウトの追加については「クイックスタート」を参照してください。
レポートをデータソースに接続する
- [レポートエクスプローラ]で、[データソース]ノードを右クリックして[データソースの追加]オプションを選択するか、[追加](+)ボタンから[データソース]を選びます。
- [レポートデータソース]ダイアログで[全般]ページを選択し、[名前]をSalesDataに変更します。
- このページでReelsデータベースに接続します。接続の詳細については「データソースとの接続」を参照してください。
データセットを追加する
- [レポートエクスプローラ]で[データソース]ノードを右クリックして[データセットの追加]オプションを選択するか、[追加](+)ボタンから[データセット]を選択します。
- [データセット]ダイアログで[全般]ページを選択し、[名前]フィールドをStoreDetailsに変更します。この名前はデータソースの子ノードとしてレポートエクスプローラに表示されます。
- このダイアログの[クエリ]ページでクエリフィールドに次のSQLクエリを入力します。
SQLクエリ |
コードのコピー
|
SELECT Regions.RegionID, Regions.Region, Districts.DistrictID, Districts.District,
Store.StoreName, Person.FirstName, Person.LastName FROM ((Regions INNER JOIN
Districts ON Regions.RegionID = Districts.Region) INNER JOIN Store ON
Districts.DistrictID = Store.DistrictID) INNER JOIN Person ON Store.Manager =
Person.PersonID;
|
- クエリボックスの右上にある[データセットの検証]アイコンをクリックしてクエリを検証します。
- [OK]をクリックしてダイアログを閉じます。データセットとクエリに入力した各フィールドの名前がノードとしてレポートエクスプローラに表示されます。
レポートのレイアウトを作成する
- ツールボックスからTablixデータ領域をドラッグしてデザイナ面にドロップします。
- ポインタをTextBox3(左下のTextBox)上でホバーさせると、フィールド選択用アイコン(五本線の入ったアイコン)がセルの右上隅に表れます。これをクリックし、表示される利用可能なフィールドの中から[Region]フィールドを選択します。このセルは行グループセルなので、フィールドを選択すると自動的に行グループが追加されます。
- [Region]行グループの上にあるTextBox1を選択し、[プロパティ]ウィンドウのValueプロパティに「所在地域」と入力します。これがこの行グループの見出しになります。
- [Region]フィールドが追加されたTextBox3を右クリックし、[行グループの追加]、[子グループ]の順に選択します。子グループが行の見出しの右に追加され、[グループエディタ]ウィンドウのリストにも追加されます。
- ポインタをTextBox5上でホバーさせると、フィールド選択用アイコンが表れます。これをクリックし、表示される利用可能なフィールドの中から[District]フィールドを選択します。このセルは行グループセルなので、フィールドを選択すると自動的に行グループが追加されます。
- [District]行グループセルの上にあるTextBox6を選択し、[プロパティ]ウィンドウでValueプロパティに「地区」と入力します。これがこの行グループの見出しになります。
- [District]フィールドが追加されたTextBox5を右クリックし、[行グループの追加]、[子グループ]の順に選択します。手順4で追加したグループの隣に子グループが追加され、[グループエディタ]ウィンドウのリストにも追加されます。
- ポインタをTextBox7上でホバーさせると、フィールド選択用アイコンが表れます。これをクリックし、表示される利用可能なフィールドの中から[StoreName]フィールドを選択します。このセルは行グループセルなので、フィールドを選択すると自動的に行グループが追加されます。
- [StoreName]行グループセルの上にあるTextBox8を選択し、[プロパティ]ウィンドウでValueプロパティに「店舗」と入力します。これがこの行グループの見出しになります。
- [StoreName]行グループセルの上にあるTextBox8を右クリックし、[列を挿入]、[右]の順に選択します。これによって静的な列が新規作成されます。
- ポインタをTextBox9上でホバーさせると、フィールド選択用アイコンが表れます。これをクリックし、表示される利用可能なフィールドの中から[FirstName]フィールドを選択します。
- TextBox9を選択し、[プロパティ]ウィンドウでValueプロパティに次の式を入力します。
=Fields!FirstName.Value & " " &Fields!LastName.Value
- =[FirstName] & " " & [LastName]と表示された列セルの上にあるTextBox10を選択し、[プロパティ]ウィンドウでValueプロパティに「店長」と入力します。これが静的な列の見出しになります。
レポートの外観性を高める
この時点でレポートをプレビューすると、各フィールドの値がTablixデータ領域に表示されていることがわかります。以下の各セルのプロパティを[プロパティ]ウィンドウで設定すると、Tablixデータ領域のレイアウト性を高めることができます。
セル |
プロパティ名 |
プロパティの値 |
=[Region] |
BackgroundColor |
Gainsboro |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
VerticalAlign |
Middle |
所在地域 |
BackgroundColor |
Gray |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
=[District] |
BackgroundColor |
LightSteelBlue |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
VerticalAlign |
Middle |
地区 |
BackgroundColor |
Gray |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
=[StoreName] |
BackgroundColor |
WhiteSmoke |
BorderStyle |
Solid |
TextAlign |
Center |
店舗 |
BackgroundColor |
Gray |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
=[FirstName] & " " & [LastName] |
BorderStyle |
Solid |
TextAlign |
Center |
店長 |
BackgroundColor |
Gray |
BorderStyle |
Solid |
FontWeight |
Bold |
TextAlign |
Center |
レポートを表示する
- デザイン時に[プレビュー]タブをクリックしてレポートを表示します。
あるいは