SHOEISHA iD

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

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

5分でわかるActiveReports帳票(AD)

5分でわかるActiveReports帳票-9.0Jの新機能

ActiveReports for .NET 9.0Jで作るサンプル帳票(1)

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

 本連載では、帳票コンポーネント「ActiveReports for .NET 9.0J」の新機能を使用して帳票アプリケーションを作成する方法を解説します。第1回の今回は、9.0Jで追加された新機能および改善点の概要を紹介します。

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

はじめに

 ActiveReports for .NET(以下、ActiveReports)は、Visual Studioと統合され、多彩な出力形態をサポートする帳票作成コンポーネントです。1998年のActiveX版「ActiveReports 1.0J(日本語版)」の発売以来、17年にわたって多くの開発者に支持され続けており、日本国内の累計販売ライセンスは75,000本を超えています。

 2015年には、マルチデータソースに対応した「RDLレポート」や、iPad/iPhoneでの閲覧をサポートする「HTML5ビューワ」などを追加した新バージョン「ActiveReports for .NET 9.0J」が発売されました。

ActiveReportsのプレビュー画面(RDLレポート)
ActiveReportsのプレビュー画面(RDLレポート)

備考

 ActiveReportsを使用した帳票アプリケーションの基本的な作成方法については、これまでの連載記事も併せてご参照ください。特に、1つ前のバージョンである7.0J をもとに解説した2013年度版の記事は、9.0Jでもそのままご利用いただける内容となっています。また、2007/2008年度版の記事は3.0Jをもとに解説していますが、3.0Jのレポートと9.0Jのセクションレポートは名前空間や一部のAPIを除いて同じレポート形式であるため、セクションレポートの概念や基本的な使い方についてはこちらもご活用ください。

対象読者

  • Visual Basicまたは、Visual C#を使ってプログラムを作ったことのある方
  • 帳票作成ツールに興味のある方

必要な環境

  • Visual Studio 2010/2012/2013/2015のいずれかでプログラムが作れる環境
    • Express EditionではActiveReportsをインストールできません。また、Visual Studio 2015についてはService Pack 2で対応しています。

3つの帳票デザイン方式

 9.0Jでは、従来の「セクションレポート」「ページレポート」に加えて、第3のデザイン方式として「RDLレポート」を追加しています。ActiveReportsが3つの帳票デザイン方式を提案するのは、多様で緻密なレイアウトが要求される日本の帳票開発において、帳票のタイプによってデザイン方式を使い分けることで、より効率よく帳票を設計できると考えているためです。まずは、それぞれのデザイン方式の特長を見ていきましょう。

セクションレポート

 セクションレポートは、ActiveReportsの発売当初から提供している形式です。データ(レコード)の数だけDetailやGroupHeader/Footerといったセクションが繰り返し表示されることで1つのページが構築されます。セクションがそのページに収まりきらなくなった場合は、次ページにセクションが出力されます。つまり、帳票レイアウトはセクションの集合体であり、帳票デザインは個々のセクションの繰り返しを意識しながら、各セクションをデザインしていく作業といえます。この方式は、縦方向に明細を繰り返し表示する一覧表のようなレポートを非常に効率よく作成できます。

セクションレポート(デザイン画面)
セクションレポート(デザイン画面)
セクションレポート(プレビュー画面)
セクションレポート(プレビュー画面)

ページレポート

 ページレポートは、7.0Jで追加した形式です。印刷結果とまったく同じレイアウトで帳票をデザインできるため、項目の配置が複雑な帳票に威力を発揮します。印刷結果とデザイン画面はWYSIWYG(what you see is what you get:見たままが得られる)の関係になります。繰り返しデータを表示する部分は、明細用のリストコントロールやテーブルコントロールといったレポート要素を利用することで対処します。また、WYSIWYG はエンドユーザーがレポートを作成するエンドユーザーレポーティングのシナリオにも適しています。

ページレポート(デザイン画面)
ページレポート(デザイン画面)
ページレポート(プレビュー画面)
ページレポート(プレビュー画面)

 ページレポートを使用した帳票レイアウトの作成方法については、2013年度版の記事をご参照ください。

RDLレポート

 RDLレポートは、9.0Jで追加した形式です。RDLレポートのデザイン方式は、SQL Server Reporting Servicesのようなフリーレイアウト方式を採用しており、RDL 2005に準拠しています。セクションの出力位置やページの用紙サイズといったレイアウト上の制約を意識することなく、自由にレポートコントロールをレイアウトできます。繰り返しデータを表示する部分は、ページレポート同様、明細用のリストコントロールやテーブルコントロールといったレポート要素を利用することで対処します。そしてこれらのコントロールがデータ数に応じて伸長していき、印刷の用紙サイズに収まりきらなくなった場合には、セクションレポート同様、次ページに引き続きデータが表示されます。

 このように、RDL レポートはページレポートとセクションレポートの特長を合わせたデザイン方式と言えますが、ページレポート/セクションレポートとは異なる点が 2つあります。1つは、複数のデータソースを手軽に使用できること。もう一つは、2つのプレビュー方式(印刷する用紙サイズに合わせて改ページした「印刷プレビュー」、すべてのデータを改ページなしで閲覧できる「ゲラモード」)を持つことです。このため、いわゆる日本帳票のような定型の様式をもった帳票ではなく、データ件数が変化するレポートを柔軟に表示するのに適したデザイン方式です。

 RDLレポートを使用した帳票レイアウトの作成方法については、次回の記事で詳しく紹介します。

RDLレポート(デザイン画面)
RDLレポート(デザイン画面)
RDLレポート(プレビュー画面)
RDLレポート(プレビュー画面)

9.0Jの新機能

 9.0Jでは、前述のRDLレポートの他にもいくつか新機能が追加されています。ここでは、新機能の概要を紹介します。

クエリデザイナ

 レポートに使用するデータをデータベースから取得するにはSQL文を記述する必要がありますが、9.0JではGUI操作でSQL文を生成できるクエリデザイナが用意されています。テーブルの一覧から必要なフィールド名を選択してソート順や抽出条件を指定するだけで、SQLを書くことなく簡単にデータを抽出できるため、SQL構文に精通していないユーザーでも簡単にデータを取得できます。また、必要なデータを正しく抽出できているか、正しくソートされているかなどを「結果」ペインで確認できます。

クエリデザイナ
クエリデザイナ

レイヤー

 ページレポート/RDLレポートでは、レポートデザイン時に複数のレイヤーを利用できます。

 デザイン時には、各レイヤーの表示/非表示や透明度を設定できます。これを利用して、既存のレポートをトレースすることができます。具体的には、スキャンした画像を背景レイヤーに配置し、その上にレポートコントロールを配置して帳票レイアウトを作成します。

画像トレース
画像トレース

 また、実行時には、レイヤーごとに出力先を設定できるため、宅配伝票や振込依頼書のようにプレ印字された用紙を使う場合に役立ちます。具体的には、帳票のプレビュー時にはデータとプレ印字の用紙(レイアウト枠線)を合わせて表示する一方で、データのみプレ印字用紙に印刷するといった設定が簡単にできます。

プレビュー(データ+レイアウト)
プレビュー(データ+レイアウト)
印刷データ(左)/プレ印字の用紙(右)
印刷データ(左)/プレ印字の用紙(右)

 詳細については、今後の連載で紹介します。

HTML5ビューワ(Professional)

 jQueryウィジェットとして動作するHTML5ビューワが追加されています。HTML5ビューワでは、Internet Explorerに加えて、新たにChromeおよびSafari for iOS(iPad/iPhone)での閲覧をサポートします。ビューワのUIは閲覧するデバイスに合わせてAPIで切り替えることができます。また、ツールバーから他のファイル形式(PDF、Excel、Word、HTML、Tiff)を選択して保存できます。なお、ASP.NET MVCフレームワークを使用したWebアプリケーションの作成も可能です。HTML5ビューワは、Professionalエディション限定の機能です。

HTML5ビューワ(iPad)
HTML5ビューワ(iPad)

 詳細については、今後の連載で紹介します。

Mapコントロール(Professional)

 ページレポート/RDLレポートでは、レポート上に地図を表示し、データを重ねて表示できます。シェープファイル(.shp)やGoogleマップを組み合わせて、ビジネスデータを分かりやすく視覚化します。Mapコントロールは、Professionalエディション限定の機能です。

Mapコントロール
Mapコントロール

 

 詳細については、今後の連載で紹介します。

ActiveReports Server(Professional)

 ActiveReports Serverは、Service Pack 1で追加された機能です。ActiveReportsで作成した帳票の運用・管理が手軽にできる製品で、Webサーバー(IIS)にインストールするだけで簡単に帳票運用環境を構築できます。エンドユーザーはポータル画面から、帳票のアップロード、プレビュー・印刷、他ファイル形式への保存、スケジューリング実行などの機能を利用できます。ActiveReports Serverは、Professionalエディション限定の機能です。

ActiveReports Server
ActiveReports Server

 詳細については、今後の連載で紹介します。また、ActiveReports Server特設ページにも、スクリーンショットや動画で分かりやすく紹介されています。

9.0Jの改善点

 9.0Jでは、新機能だけでなく、既存の機能についても操作性やレイアウト精度を見直してブラッシュアップを図っています。ここでは、主な改善点について紹介します。

Excelエクスポート

 ページレポート/RDLレポートに、専用のExcelエクスポート(描画拡張機能)を追加しました。従来のExcelエクスポートを使用した場合に比べて、レイアウト精度が飛躍的に向上しています。プレビュー画面の表示とほぼ同じレイアウトでのExcel出力が可能となり、データの一部を更新して印刷したい場合にもレイアウトの修正が不要です。

プレビュー画面
プレビュー画面
従来のExcelエクスポート(左)/新しいExcelエクスポート(描画拡張機能、右)
従来のExcelエクスポート(左)/新しいExcelエクスポート(描画拡張機能、右)

マウスでFixedSizeプロパティの変更

 ページレポートでは、マウス操作でFixedSizeプロパティ(Tableなどのデータ領域の描画範囲)を変更できます。

 9.0JでページレポートにTableなどのデータ領域を配置すると、マウス操作用の2つのハンドルが表示されます。1つは、データ領域のセルの大きさを設定するハンドル(白四角)で、これは他のTextBoxコントロールなどにも共通のものです。もう一つは、その外側に表示されるハンドル(黒丸)で、これをドラッグしてデータ領域の描画範囲を変更します。

マウスでFixedSizeプロパティの変更
マウスでFixedSizeプロパティの変更

角丸罫線の個別設定

 セクションレポートでは、ShapeコントロールおよびCrossSectionBoxコントロールの角丸の大きさを個別に設定できます。日本の帳票では罫線を多用したレイアウトがよく見られますが、上の角だけ丸くしたり個別に角丸の大きさを変えたりといった細かな要件にも容易に対応できます。

 なお、ページレポートは7.0Jで対応しており、9.0Jで追加されたRDLレポートでも同様に利用できます。

角丸罫線の個別設定
角丸罫線の個別設定

クラウド対応

 9.0Jでは、従来の物理サーバーに加えて、クラウド仮想マシン(Microsoft Azure Virtual Machines、Amazon EC2)での運用を正式にサポートしています。これにより、運用環境の変化に合わせて安心して帳票アプリケーションを動作させることが可能となっています。

まとめ

 今回は、9.0Jで追加された新機能および改善点の概要を紹介しました。9.0Jで追加されたRDLレポートを含め、作成する帳票レイアウトに合わせて3つの帳票デザイン方式を使い分けることで、さらに効率のよい帳票作成が可能です。

 次回は、「RDLレポート」の特長を利用したレポートレイアウトの作成方法を紹介します。

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8855 2016/01/13 14:09

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング