SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ActiveReports)(AD)

データベースのデータをもとに帳票を作成し、サーバーで共有もできる.NETアプリケーションの作成

ActiveReports for .NET 9.0Jを活用したWindowsフォームアプリケーションの作成

  • このエントリーをはてなブックマークに追加

 ActiveReports for .NET 9.0JのActiveReportsコントロールを使って、データベースのデータをもとに、データを一覧表示するアプリケーションを作成します。また、新機能のActiveReports Serverを使った帳票データの共有機能も試してみます。

  • このエントリーをはてなブックマークに追加

はじめに

 データベースのフロントエンド作成ツールは、いろいろとありますが、ActiveReports for .NET 9.0JのActiveReportsコントロールは、データベースのデータをもとに帳票作成機能をアプリケーションに組み込むことができるコンポーネントです。

 データをレコードの数だけ繰り返し表示するセクションレポート、ページ単位でレポートをデザインするページレポート、セクションの出力位置やページの用紙サイズといったレイアウト上の制約を意識することなく、自由にレポートコントロールをレイアウトできるRDLレポートの3種類のレポートを作成することができます。データの種類や使用目的によって、作成する帳票の形式が異なってきますが、ActiveReportsコントロールを使用すれば、さまざまな形式の帳票作成に対応することができます。

 また、アプリケーションの形態もWindowsフォームだけでなくWPFやWebアプリケーションとして作成することができます。ActiveReports for .NET 9.0Jは、今回のバージョンアップでサーバー機能が追加され、作成したレポートをWebで共有し管理運用できるようになったり、ページレポートでレイヤー機能が使えるようになるなど、より一層使いやすさが増しています。

 そこで今回は、このActiveReportsコントロールを使用して、データベースのデータをもとに簡単な給与明細を作成するWindowsフォームアプリケーションを作成してみました。

簡単な給与明細を作るアプリケーション
簡単な給与明細を作るアプリケーション
レポート作成は専用のデザイナでビジュアルに編集できる
レポート作成は専用のデザイナでビジュアルに編集できる
複数のレイヤーでレイアウトを作成
複数のレイヤーでレイアウトを作成
ActiveReports 9.0J Serverを使ってレポートの管理運用が可能
ActiveReports 9.0J Serverを使ってレポートの管理運用が可能

対象読者

 Visual Basic 2010/2012/2013、またはVisual C# 2010/2012/2013を使ってプログラムを作ったことがある人。

必要な環境

 Visual Basic 2010/2012/2013、Visual C# 2010/2012/2013、Visual Studio 2010/2012/2013でプログラムが作れる環境。

 なお、本プログラムは次の環境で開発・動作確認を行っています。

  • OS:Windows 7
  • 開発Tool:Visual Studio 2010、.NET Framework 4

プログラム実行時の注意事項

 本稿のプロジェクトファイルを動かすには、記事に添付されているサンプルファイルに同梱してある以下のSQLサーバーデータベースファイルをSQLサーバーに組み込んでください。

  • 給与明細_Data.mdf
  • 給与明細_Log.ldf

コンポーネントのインストール

 トライアル版は、グレープシティのWebページから申し込みできます。

 トライアル申込フォームが表示されますので、必要情報を入力して申し込むとトライアル版のダウンロード手順を記載したE-Mailが送られてきます。その手順にそってダウンロードを行ってください。また、ダウンロードファイルは圧縮ファイルになっていますので、解凍してインストーラを起動します。

 制限事項などの詳細については、インストーラに同梱されているリリースノートを参照ください。

コントロールと参照の追加

 ActiveReports for .NET 9.0Jをインストールしたら、プロジェクトにコントロールを追加します。

 ツールボックスに専用のタブを作成し、以下のコンポーネントを追加します。

  • Viewer
  • WebViewer
  • Designer
  • ReportExplorer
  • Toolbox
  • LayerList
  • HtmlExport
  • PdfExport
  • RtfExport
  • TextExport
  • TiffExport
  • XlsExport

 [ツールボックスアイテムの選択]ダイアログの[.NET Frameworkコンポーネント]タブへ移動し、フィルターのテキストボックスで、「Grapecity.ActiveReports」と入力すると選択しやすくなります。

「Grapecity.ActiveReports」のコンポーネントを追加する
「Grapecity.ActiveReports」のコンポーネントを追加する
ツールボックスに追加されたコントロール
ツールボックスに追加されたコントロール

 これらのコントロールを追加すると、プロジェクトに画面のようなランタイムライブラリへの参照が追加されます。

追加された参照設定
追加された参照設定

ActiveReportsコントロールの概要と新機能

 ActiveReportsは、帳票を作成できるコンポーネントです。ActiveReportsを使用した帳票アプリケーションを作成する際の手順は、大きく分けてレポートの「デザイン」と「出力」の2つに分かれます。

 レポートの「デザイン」は、ActiveReportsのデザイナを使用します。ActiveReports for .NET 9.0Jは3種類のデザイナを提供しています。従来から提供されている、データ(レコード)の数だけセクションと呼ばれる領域を繰り返し表示することで1つのページが構築される「セクションレポート」、ページ単位でレポートをデザインする「ページレポート」、ページレポートを拡張し複数のデータソースをサポートする「RDLレポート」です。

 詳しくは、CodeZineの記事『5分でわかるActiveReports帳票-9.0Jの新機能』を読んでいただくとして、ここではバージョン9.0Jで追加された新機能のうち、これは便利だなと感じた「ページレポートのレイヤー機能」と「ActiveReports Server」について紹介します。

ページレポートのレイヤー機能

 ページレポートは、源泉徴収票や請求書、支払明細書など、単票の帳票を作成するのに適したレポートです。これまでのページレポートは、1枚のデザインシートにテーブルなどのコントロールを配置してデザインを作成していました。バージョン9.0Jではこのレイアウト編集に「レイヤー」という概念を導入し、より一層レイアウトを行いやすくしています。

 レイヤーとは昔懐かしいOHPのシートのように、透明なセルシートを何枚も重ねていくような機能です。某有名グラフィックソフトでも使われている機能ですが、例えば1枚の帳票のデザインを部位ごとに1つずつ1枚のレイヤーに設定して作成していきます。1枚のレイヤーに作成したデザインは、他のレイヤーから操作することはできません。なので、こうすることで一度デザインを決めた部位は他の部位のデザイン中に誤って動かされてしまう、ということがなくなります。1か所修正したいだけなのに、余計なところまで手を加えるはめになってしまう、などというような無駄な作業が減少します。

 例えば、今回作成するサンプルアプリケーションでは、ページレポートを4枚のレイヤーを使ってデザインしています。レイヤーは何枚も追加することができ、削除することもできます。レイヤー一覧を使用して、編集したいレイヤーを切り替えてレイアウトを編集します。

レイヤー一覧
レイヤー一覧

 「ロック」を選択することで、そのレイヤーのデザインを固定できます。また、「表示」でデザイン時のレイヤーの表示・非表示を切り替えることができます。重なりあったレイヤーの中で1枚だけレイヤーを表示したい、などという場合に使用します。

 また、スキャナなどで既存の伝票を読み込み、レイヤー機能を使ってその上にデータを表示するような使い方も可能です。たとえば、宅配伝票などのプレ印字の用紙にデータだけ印刷するようなケースでのアプリケーション開発やプレビューに使っても効果的な機能です。

レイヤー一覧の機能

 レイヤーの追加・削除や重なり順序の入れ替えは、レイヤー一覧のツールバーを使用します。

レイヤー一覧のツールバー
レイヤー一覧のツールバー
レイヤーの追加

 レポートを作成すると、"default"という名称の既定レイヤーがレイヤー一覧に自動的に追加されます。レポートで、レイヤーを追加するページを選択します。[レイヤー一覧]ツールバーで、[新規]ボタンをクリックします。"Layer1"という名前の新しいレイヤーがレポートとレイヤー一覧に追加されます。

レイヤーの削除

 既定レイヤーを除くすべてのレイヤーは削除できます。レイヤー一覧で、削除するレイヤーを選択します。[レイヤー一覧]ツールバーで[削除]ボタンをクリックして、選択したレイヤーを削除します。これにより、選択したレイヤーとそのレイヤーに配置されたコントロールがレポートとレイヤー一覧から削除されます。

最前面/最背面への移動

 [最背面へ移動]ボタンまたは[最前面へ移動]ボタンを使用して、選択したレイヤーに配置されたコントロールのグループを他のレイヤー上のコントロールの前面または背面に移動できます。レイヤー一覧で、順序を設定するレイヤーを選択します。[レイヤー一覧]ツールバーで[最前面へ移動]または[最背面へ移動]ボタンをクリックして、レイヤーに配置されたコントロールを最前面または最背面に移動します。

レイヤーのプロパティ

 レイヤーのプロパティを使用して、以下の操作が行えます。既定レイヤー以外のレイヤー名の変更もプロパティで行います。

プロパティ 説明
DesignerLock True/False レイヤーに配置されたコントロールをロックまたはロック解除します。ロックされたレイヤーのデザイナ面に配置されたコントロールは、キーボードまたはマウスによって移動またはサイズ変更できません。その他の編集機能(切り取り、コピー、貼り付け)とコントロールの追加または削除は可能です。
このプロパティは、レイヤー一覧の[ロック]チェックボックスを使用して設定することもできます。
DesignerTransparency 0~1 レイヤー上のコントロールの透明度を設計時に0~1の値に設定します。透明度が1に設定されたレイヤーはデザイナ上で見えなくなります。
DesignerVisible

True/False

レイヤーに配置されたコントロールがデザイナに表示されるかどうかを指定します。
このプロパティは、レイヤー一覧の[表示]チェックボックスを使用して設定することもできます。
Name レイヤー名(文字列) レイヤーの名前を設定します(既定レイヤーを除く)。
TargetDevice None、Screen、Paper、Export、All 選択したターゲットに基づいて、レイヤーに配置されたコントロールの可視性を指定または制限します。

None:レイヤーはどのターゲットデバイスにも表示されません。
Screen:レイヤーはビューワに表示されます。
Paper:レイヤーは印刷時に表示されます。
Export:レイヤーはエクスポート時に表示されます。
All:レイヤーはすべてのターゲット(すなわち、Screen、Paper、Export)に表示されます。

 実際に使ってみると、レイヤーの有用性がお分かりになると思います。

ActiveReports 9.0J Serverの概要

 今回のバージョンアップでの大きな変更点の一つは、ActiveReports 9.0J Serverが追加されたことです。これは、WindowsのWebサーバー(IIS)にインストールし、作成したレポートをサーバーで管理・共有することができるポータルサーバー機能です。

 作成したレポートを専用のサーバーで管理することで、例えば複数の帳票発行機能を持ったプロジェクトを作成する場合では、1つのレポートデザインをチームで共有することができます。また、一度作成したレポートデザインの修正を別の担当者が行うことも容易に行えます。サーバーにレポートデザインを公開することで、上司や責任者も開発状況を把握することができます。

 また、運用という視点で見た場合も、使いやすいポータル画面で帳票のアップロード、プレビュー・印刷、他ファイル形式への保存、スケジューリング実行などの機能があらかじめ組み込まれていますので、ActiveReports 9.0J Serverを導入した時点でこれらの機能を手軽に利用できますから、フルスクラッチで一からWeb帳票システムを作成するよりも低コストで帳票運用環境を構築することができます。

 このように、レポート開発から運用まで一貫して管理できる、斬新なシステムです。

ActiveReports Server 利用イメージ(製品ページより引用)
ActiveReports Server 利用イメージ(製品ページより引用)

ActiveReports Serverの動作環境

 ActiveReports Serverは、ActiveReports 9.0Jとは別にインストールします。

 WindowsのWebサーバーであるInternet Information Services(IIS)にインストールしますので、 IISがインストールされている必要があります。また、ASP.NET 4.5および以下のシステムが必要です。

サーバー
  • .NET Framework 4.5/4.5.1/4.5.2
  • Windows Server 2008/Server 2008 R2/Server 2012/Server 2012 R2
  • Internet Information Services
  • ポート 4040(TCP)、7923(UDP)、26637(UDP)または57323(UDP)
クライアント
  • Internet Explorer 9/10/11、Chrome 最新版/最新版-1(注1
  • iPad/iPhone Safari for iOS 8

注1

 帳票ビューワ形式に「Flash」を選択した場合は、Internet Explorer9/10/11のみがサポートされます。またAdobe Flash Player 11以上(Windows)が必要です。

 これらのシステムがあれば、後はインストーラの指示に従ってインストールするだけです。

 筆者の場合は、ローカルのIISサーバーにインストールしましたのでURLはローカルになっていますが、ネットワークが構築されていれば、そのURLにアクセスするだけでアップロードしたレポートデザインにアクセスできます。

設定されたActiveReports Server
設定されたActiveReports Server

 また、レポートごとにパスワード設定や閲覧・編集の権限を設定できますから、一般ユーザーと管理者権限とに分けてレポートを管理することができます。

 ActiveReports Serverを設定すれば、レポートのアップロードはとても簡単で、Visual Studioにあるメニュー「レポート」の「サーバーに保存」を選ぶだけです。

レポートのアップロードはメニューの「レポート」-「サーバーに保存」を選ぶだけ
レポートのアップロードはメニューの「レポート」-「サーバーに保存」を選ぶだけ

 ActiveReports Serverに接続していなければ、ダイアログにある「接続」ボタンで接続し保存できます。

 サーバーからの取り出しも、同じくVisual Studioのメニュー「レポート」-「サーバーから開く」を選ぶだけです。

レポートの読み込みはメニューの「レポート」-「サーバーから開く」を選ぶ
レポートの読み込みはメニューの「レポート」-「サーバーから開く」を選ぶ

 ActiveReports 9.0J Serverの詳しい説明は、別途CodeZineの記事『グレープシティ、帳票開発コンポーネント「ActiveReports for .NET 9.0J」にポータルサーバー構築機能を追加』をご参照ください。

ページレポートとActiveReports Serverを使ったアプリケーションの作成

 では、さっそくアプリケーションを作成していきましょう。今回は、ページレポートのレイヤー機能を使い、簡単な給与明細書を作成するアプリケーションを作ってみます。

 給与データはSQL Serverで作成されており、ここから支給・控除の明細データを取出し、1人ずつ給与明細書を作成します。データベースのデータは説明を分かりやすくするために、支給額等はすでに計算されて格納されているものを使用します。

 このサンプルアプリケーションを作成する前に、SQL Server用のデータベース「給与明細」をSQL Serverで使えるように設定してください。

作成する給与明細書作成アプリケーション

作成する給与明細書作成アプリケーション

レポートの作成とデータ連結

 まずはレポートを作成します。今回作成するのはページレポートで、一人一人のデータを単票で表示するレポートを作成します。

 (1)プロジェクトのコンテキストメニューから「追加」-「新しい項目」を選びます。

「追加」-「新しい項目」を選ぶ
「追加」-「新しい項目」を選ぶ

 (2)テンプレートの一覧が表示されますので、「ActiveReports 9.0Jページレポート(XML)」をクリックし、名前はデフォルトのまま「追加」ボタンをクリックします。

「ActiveReports9.0Jページレポート(XML)」をクリック
「ActiveReports9.0Jページレポート(XML)」をクリック

 (3)Visual Studioにページレポートデザイナが表示されます。

ページレポートデザイナが表示される
ページレポートデザイナが表示される

 (4)Visual Studioのツールバーにある「レポートエクスプローラ」ボタンをクリックします。

「レポートエクスプローラ」ボタンをクリック
「レポートエクスプローラ」ボタンをクリック

 (5)「レポートエクスプローラ」が開きますので、「データソース」のコンテキストメニューから「データソースの追加」ボタンをクリックします。

「データソースの追加」ボタンをクリック
「データソースの追加」ボタンをクリック

 (6)「レポートデータソース」ダイアログが開きますので、「サーバー名」を入力し、認証を選択してデータベース名「給与明細」をクリックし、OKボタンをクリックします。

データベース名「給与明細」をクリック
データベース名「給与明細」をクリック

 (7)レポートエクスプローラにデータソースが設定されていますので、この上で右ボタンをクリックしてコンテキストメニュー「データセットの追加」をクリックします。

コンテキストメニュー「データセットの追加」をクリック
コンテキストメニュー「データセットの追加」をクリック

 (8)データセットダイアログが表示されますので、「クエリ」タブをクリックします。そして、鉛筆アイコン「クエリデザイナで編集する」をクリックします。

鉛筆アイコン「クエリデザイナで編集する」をクリック

鉛筆アイコン「クエリデザイナで編集する」をクリック

 (9)クエリデザイナが表示されますので、左ペインの「給与明細」を展開し、次の順番でフィールド名をダブルクリックします。自動的に右の「選択したフィールド」欄に、ダブルクリックしたフィールドが入力されていきます。

  • 氏名
  • 本給
  • 家族手当
  • 住宅手当
  • 休日出勤手当
  • 時間外手当
  • 支給合計
  • 所得税
  • 地方税
  • 健康保険料
  • 雇用保険料
  • 厚生年金保険料
  • 控除合計
  • 差引支給額
左ペインの「給与明細」を展開し、次の順番でフィールド名をダブルクリック
左ペインの「給与明細」を展開し、次の順番でフィールド名をダブルクリック

 (10)フィールドが転送できたら「実行」ボタンをクリックします。下にある「結果」欄にクエリ結果が表示されます。

「実行」ボタンをクリックすると、「結果」欄にクエリ結果が表示される
「実行」ボタンをクリックすると、「結果」欄にクエリ結果が表示される

 (11)クエリデザイナの「保存」ボタンをクリックします。

「保存」ボタンをクリック
「保存」ボタンをクリック

 データセットダイアログに戻りますので、OKボタンをクリックしてダイアログを閉じます。

 (12)レポートエクスプローラにデータセットが追加されています。展開してフィールドが設定されていることを確認します。

データセットを展開してフィールドが設定されていることを確認する
データセットを展開してフィールドが設定されていることを確認する

ページレポートのデザイン

 データベース連結ができたら、ページレポートをデザインしていきます。レポートエクスプローラはそのまま表示しておいてください。ここでは、レイヤーを追加しながらデータをカテゴリ別にレイヤーに作成していきます。

 レイヤーは全部で4枚で、各レイヤーには次のように項目を作成します。

レイヤー名 項目
default 支給明細
koujo 控除明細
sikyuugaku 差引支給額
Flame 外側の枠線

 それぞれのレイヤーでは、Tableコントロールを使用してデータベースデータを配置していきます。

作成するレイヤーの一覧
作成するレイヤーの一覧

最初のレイヤーの作成

 (1)左のルーラーを左方向にスライドさせて、グリッドを広げて全部で17マスになるようにします。

 (2)ツールバーの「レイヤー一覧」ボタンをクリックします。「default」という名前のレイヤーが表示されていますが、ページレポートを追加した時点でこの1枚が設定されます。レイヤー「default」は削除することも名前を変えることもできません。

「default」という名前のレイヤーが表示されている
「default」という名前のレイヤーが表示されている

 (3)このレイヤーに支払われる項目を設定していきます。まず、ツールボックスから「Table」をレポートにドラッグ&ドロップし、グリッドの3行2列目に配置します。

ツールボックスから「Table」をレポートにドラッグ&ドロップ
ツールボックスから「Table」をレポートにドラッグ&ドロップ

 (4)Tableのコンテキストメニューを表示し、「列の挿入」をクリックします。

コンテキストメニュー「列の挿入」をクリック
コンテキストメニュー「列の挿入」をクリック

 (5)列数を「3」にしてOKボタンをクリックします。

列数を「3」にしてOKボタンをクリック
列数を「3」にしてOKボタンをクリック

 (6)白い□のハンドルをドラッグし、テーブルの幅を広げます。

 (7)テーブルで使用するデータをグループ化します。データをグループ化しないと、ただ単にデータが垂れ流しでコントロールに入力されていくだけなので、グループ化が必要になります。ここでは氏名ごとにデータをグループ化します。

 ページのグレーの部分をクリックし、プロパティウィンドウの下部にある「ページレイアウトの設定」をクリックします。

「ページレイアウトの設定」をクリック
「ページレイアウトの設定」をクリック

 (8)左ペインから「全般」を選び、右ペインの「データセット名」リストから「DataSet1」をクリックします。

「データセット名」リストから「DataSet1」をクリック
「データセット名」リストから「DataSet1」をクリック

 (9)左ペインから「グループ化」を選び、右ペインの「グループ化の条件」リストから「氏名」をクリックします。

 これでデータは氏名でグループ化されて使うことができるようになります。

右ペインの「グループ化の条件」リストから「氏名」をクリック
右ペインの「グループ化の条件」リストから「氏名」をクリック

 (10)ここからテーブルにフィールドデータを設定していきます。まず、レポートエクスプローラからデータセットのフィールド「氏名」を、テーブルの最初の列の2行目にドラッグ&ドロップします。

フィールド「氏名」を、テーブルの最初の列の2行目にドラッグ&ドロップ
フィールド「氏名」を、テーブルの最初の列の2行目にドラッグ&ドロップ

 これで、列ラベルとデータが最初の列に設定されます。

列ラベルとデータが最初の列に設定される
列ラベルとデータが最初の列に設定される

 (11)同じように、残りの列の2行目に次のフィールドをドラッグ&ドロップします。

  • 本給
  • 家族手当
  • 住宅手当
  • 休日出勤手当
  • 時間外手当
残りの列の2行目にフィールドをドラッグ&ドロップ
残りの列の2行目にフィールドをドラッグ&ドロップ

 (12)1行目を選択し、プロパティウィンドウの次のプロパティを設定します。

プロパティ 設定値
BackGroundColor LightCyan
BorderColor Blue
BorderStyle Solid

 これで、1行目の背景色と枠線が設定されます。

1行目の背景色と枠線が設定される
1行目の背景色と枠線が設定される

 (13)今度は2行目を選択し、枠線だけを設定します。

プロパティ 設定値
BorderColor Blue
BorderStyle Solid

 (14)3行目を選択し、コンテキストメニューから「行の削除」をクリックして削除します。

3行目を削除
3行目を削除

 また、斜線のエリアをドラッグして2行目に合わせます。

斜線のエリアをドラッグ
斜線のエリアをドラッグ

 (15)もう一つテーブルを追加し、最初のテーブルの下側に配置します。そして、コンテキストメニューから「列の削除」をクリックして2列を削除し、3行目も削除し1列2行のテーブルにします。また、最初のテーブルと同様、プロパティウィンドウで枠線と1行目の背景色を設定します。

プロパティ 設定値
BackGroundColor LightCyan
BorderColor Blue
BorderStyle Solid
1列2行のテーブルを作成
1列2行のテーブルを作成

 (16)このテーブルの2行目に、フィールド「支給合計」をドラッグ&ドロップします。

 これで、支給項目の表が出来上がりました。

支給項目の表が完成
支給項目の表が完成

 (17)ここでデザイナの「プレビュー」タブをクリックし、デザイン結果とデータがちゃんと表示されていることを確認します。

デザイン結果とデータ表示を確認
デザイン結果とデータ表示を確認

2枚目以降のレイヤーの作成

 続いて、控除項目のテーブルを作成します。これは、レイヤーをもう1枚追加して行います。

 (1)デザイナ画面に戻り、レイヤー一覧の「新規」ボタンをクリックします。レイヤーが1枚追加されます。

レイヤー一覧の「新規」ボタンをクリック
レイヤー一覧の「新規」ボタンをクリック

 (2)この状態でプロパティウィンドウの「Name」プロパティを「koujo」に変更します。

「Name」プロパティを「koujo」に変更
「Name」プロパティを「koujo」に変更

 (3)この時点でアクティブなレイヤーは「koujo」になっており、すでに作成した支払項目のテーブルは操作できません。ここに、先ほどの支給項目と同じようにテーブルを2つ作成し、次のフィールドとプロパティを設定します。ただし、控除項目は5項目しかありませんから、最初のテーブルの列数は5で作成します。

最初のテーブル
  • 所得税
  • 地方税
  • 健康保険料
  • 雇用保険料
  • 厚生年金保険料
プロパティ 設定値
BackGroundColor LavenderBlush
BorderColor Red
BorderStyle Solid
2つ目のテーブル
  • 控除合計
プロパティ 設定値
BackGroundColor LavenderBlush
BorderColor Red
BorderStyle Solid
作成した控除項目のデザイン
作成した控除項目のデザイン

 (4)レイヤーをもう一枚追加し、レイヤー名を「sikyuugaku」に変更します。そして、テーブルを作成して1列2行にし次のプロパティを設定します。

  • 差引支給額
プロパティ 設定値
BackGroundColor Cornsilk
BorderColor Black
BorderStyle Solid
作成した3枚目のレイヤー
作成した3枚目のレイヤー

 (5)レイヤーをもう1枚追加し、レイヤー名を「Flame」に変更します。そして、ツールボックスから「Shape」をドラッグ&ドロップし、レポートの枠線になるように広げます。

Shapeをドラッグ&ドロップして広げる
Shapeをドラッグ&ドロップして広げる

 (6)レイヤー一覧でレイヤー「Flame」を選択し、ツールバーの「最背面に移動」をクリックします。これで枠線が一番下に移動します。

ツールバーの「最背面に移動」をクリック
ツールバーの「最背面に移動」をクリック

 (7)これで給与明細書が出来上がりました。プレビューで仕上がりを確認します。そして、最後にレイヤー「default」をクリックし、TextBoxコントロールをページの上部にドラッグ&ドロップして、Valueプロパティに「平成27年8月 給与明細」と入力します。

TextBoxコントロールを配置
TextBoxコントロールを配置

 (8)レポートエクスプローラの「共通フィールド-日付と時刻」をレポートの右上にドラッグ&ドロップします。これで、作成日時が表示されます。

「共通フィールド-日付と時刻」をレポートの右上にドラッグ&ドロップ
「共通フィールド-日付と時刻」をレポートの右上にドラッグ&ドロップ

 以上で完成です。プレビューで仕上がりを確認します。

完成したページレポート
完成したページレポート

Windowsフォームビューワの設定

 レポートが作成できたら、これをフォームで表示できるようにWindowsフォーム用ビューワを設定します。

 (1)ツールボックスからViewerコントロールをフォームにドラッグ&ドロップします。そして、Dockプロパティを「Fill」に設定します。

Viewerコントロールをフォームにドラッグ&ドロップ
Viewerコントロールをフォームにドラッグ&ドロップ

 (2)フォームのLoadイベントハンドラに次のコードを記述します。ページレポートのインスタンスを作成し、ViewerコントロールのLoadDocumentメソッドにそのインスタンスを設定して実行すれば、レポートがビューワで表示されます。

Visual Basic
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim file_name As String = "PageReport1.rdlx"
        Dim pageReport As New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo(file_name))
        Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(pageReport)
        Viewer1.LoadDocument(pageDocument)

    End Sub
End Class
C#
namespace ActiveReports9_Winform_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string file_name = "PageReport1.rdlx";
            GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
            GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
            viewer1.LoadDocument(pageDocument);
        }
    }
}

 (3)アプリケーションを実行する場合は、licences.licxファイルにライセンスを記述する必要があります。ソリューションエクスプローラで「licenses.licx」をクリックして開き、以下の1行を追加します。

GrapeCity.ActiveReports.PageReport, GrapeCity.ActiveReports.v9

 また、ページレポートのデザインファイルを、アップロードの実行フォルダに置く必要がありますので、デバッグで実行する場合は「PageReport1.rdlx」をexeファイルと同じフォルダにコピーします。

 (4)アプリケーションを実行し、一人一人の給与明細が表示されることを確認します。

アプリケーション実行画面
アプリケーション実行画面

サーバーへの保存と読み出し

 完成したページレポートを、ActiveReports Serverに保存します。また、新しいプロジェクトを作成し、このレポートを読み込んでみます。

 (1)デザイナをデザイン状態にします。Visual Studioのメニュー「レポート」-「サーバーに保存」がアクティブになるので、これをクリックします。

メニュー「レポート-サーバーに保存」をクリック
メニュー「レポート-サーバーに保存」をクリック

 (2)ActiveReports Serverに接続されていなければ、ユーザー名とパスワードを入力し、「接続」ボタンをクリックしてActiveReports Serverに接続します。

「接続」ボタンをクリックしてActiveReports Serverに接続
「接続」ボタンをクリックしてActiveReports Serverに接続

 (3)「レポートの名前」に「給与明細」と入力して「保存」ボタンをクリックします。

「レポートの名前」に「給与明細」と入力して「保存」ボタンをクリック
「レポートの名前」に「給与明細」と入力して「保存」ボタンをクリック

 (4)ActiveReports Serverにレポート名「給与明細」が表示され、サーバーに保存されたことが分かります。

ActiveReports Serverにレポート名「給与明細」が表示される
ActiveReports Serverにレポート名「給与明細」が表示される

 右側のペインには、誰によってアップロードされたのか、更新日、作成日、作成者名、更新者名などレポートの改編履歴が表示されています。

 (5)今度は新しいプロジェクトを作成し、そこにこのレポートを読み込んでみます。新しいプロジェクトを作成し、ページレポートを追加します。そして、Visual Studioのメニューから「レポート」-「サーバーから開く」をクリックします。

メニューの「レポート-サーバーから開く」をクリック
メニューの「レポート-サーバーから開く」をクリック

 (6)「レポートの選択」にある「給与明細」をクリックして「開く」ボタンをクリックします。

「給与明細」をクリックして「開く」ボタンをクリック

「給与明細」をクリックして「開く」ボタンをクリック

 (7)作成したページレポートがプロジェクトに組み込まれます。

ページレポートがプロジェクトに組み込まれる
ページレポートがプロジェクトに組み込まれる

まとめ

 ActiveReports for .NET 9.0Jは、バージョンアップによってかなり強力な帳票作成コンポーネントになりました。特に本稿で紹介したページレポートのレイヤー機能は、帳票様式が複雑になればなるほどその有用性が高まります。いかにデザインしやすく、修正しやすいのかはアプリケーション開発の工期や工数に大きく影響します。その点では、このレイヤー機能は工期・工数の削減に大きく貢献できるのではないでしょうか。

 開発プロジェクトの管理という点でも、ActiveReports 9.0J Serverが実装されたことで情報の共有化が図られ、より開発プロジェクトが進めやすくなっていくと思います。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8909 2015/11/10 15:31

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング