17Th
Developer Camp

Delphi/C++Builder+ FastReportで作る
実用レポート出力
株式会社ドリームハイブ
代表取締役 ITコンサルタント山本 悟

1

ドリームハイブとは• システム開発、ITコンサルティングの会社– http://www.dreamhive.co.jp/– http://twitter.com/dreamhive_jp• dHive：ドリームハイブのコンテンツ配信サイト– http://dhive.jp/• DH-APPLI：「軽い」「便利」「使いやすい」なソフトたち– http://dhive.jp/dhappli/• 代表取締役 山本 悟
– ブログ：http://dhive.jp/blog/yama/– facebook：http://www.facebook.com/kryu2
2

本日の流れ
1.
2.
3.
4.
5.
6.

まずはFastReportの特徴をチェック！
実用的なレポートってナニ？
デモ
注意！Editionによって使えない機能があります！
他のレポート製品からの移行についてまとめ！

3

1.まずはFastReportの特徴をチェック！
•Delphi 4〜XE2,C++ Builder 6〜XE2をサポート––•••••••••••••※日本語版は Delphi 2009 / C++Builder 2009 以降のサポート※ただし、他のレポートツールからのコンバート用にDelphi 4～XE2、C++Builder 4～XE2 に対応している
英語版が提供されます

UNICODEをサポート
競合製品に比べて安め
Delphiの実行用バイナリにライブラリごと埋め込むことが可能
デザインしたレポートは、埋め込むことも、外部ファイルとして参照することも可能
バンドによるレポート構成なので、Quick ReportやRave Reportから移行しやすい
縦型バンドもあります
テキスト、画像、線・図形はもちろん、チャート、バーコード、クロステーブル、OLEオブジェクト、リッチテキスト、などが使用可能
ランタイムデザイナを搭載、しかもロイヤリティフリー
レポート内にデータセット(ADO, BDE, DBX, IBX, FIB)を組み込み事が可能
Script(FastScript)に対応(PascalScript, C++Script, BasicScript, JScript)
プリンタ以外にも出力先が指定可能(PDF, RTF, XLS, XML, HTML, JPG, BMP, GIF, TIFF, TXT, CSV,ODF)
レポートの継承関係を作成することが可能
クロスタブタイプ、ドリルダウンタイプのレポートの作成が可能

4

2. 実用的なレポートツールってナニ？
•(日本では多くの場合)「紙で存在している帳票の再現性が高いこと」•

この結果を得るツールは次の要件を満たす必要がある
–
–––––

•

自由にオブジェクトの配置ができること
フォントが指定できること(日本語フォントは複雑！！)データの繰り返しができること表が作れることプレビューが正確であること
条件によって表現(色・フォントなど)が変えられること

業種/場合によって・・– バーコード印刷– Excel/PDF出力– ドット マトリックスプリンター用の出力
53. デモ：本日作るデモアプリケーション• 概要– 次の機能を利用したデモアプリケーションの構築を行います• 機能一覧
– プレビュー
– レポートデザインの埋め込み、外部ファイルの参照– HTMLタグによる装飾– データベース コンポーネントとの接続– マスター・詳細レポート– チャート– スクリプトによる拡張– プレビュー画面のツールボタンのカスタマイズ– エクスポート(PDF)
6

デモ：レポートデザイナーの画面構成•– ワークスペース

画面構成の紹介–––––RAD Studioライクのデザイナ
コンポーネントパレット
レポート オブジェクト ツリー
オブジェクト インスペクタ
データ ツリー•コンポーネントパレットの紹介– バンドオブジェクト– ・・・– ドローオブジェクト

74. 注意！Editionによって使えない機能があります！
Embarcadero RAD Edition

Enterprise Edition

RunTime end-user
designer×○

Vertical Bands

×○

Cross Tabs

×○

Dialog forms designer

×○Interbase Express (IBX),
IBOjects, ActiveX Data
Objects (ADO), dbExpress
support×○Excel Binary

×○

Excel XML×○

E-Mail×○

Script×○Components for webapplications

×

○

8

5. 他のレポート製品からの移行について• 移行可能な他社製のレポート製品は？
– QuickReport– RaveReport– ReportBuilder• 移行可能なデータは帳票データのみ– 埋め込みスクリプトなどは手動で移行する必要があります– 帳票を生成するためのコード(DelphiやC++Builderの)は手動で移行する必要があります• その他– ライセンスが有効なQuickReportと、それが動作するDelphi/C++Builderの環境があること– Embarcadero EditionではないFastReportのライセンス99

他のレポート製品からの移行の流れ
1.
2.
3.

4.
5.
6.
7.

FastReport(日本語版)を、既存の開発環境(Delphi4～XE、C++Builder6～XE)上にインストールする
QuickReportを使用している既存プロジェクトを既存の開発環境で開く
FastReportに付属するコンバート用ユニット「ConverterQR2FR.pas」を既存プロジェクトに追加する
製品版：C:¥Program Files (x86)¥FastReports¥FastReport 4¥Source
QuickReportの帳票データをFastReportの帳票データ(.fr3)に変換するコードを実行する。
Delphi XE2、C++Builder XE2で、新規にVCLフォームアプリケーションを作成するか、もしくは既存プロジェクトを開き、XE2に付属するFastReportコンポーネントをフォーム上に配置する
FastReportの帳票デザイナを開き、変換済みの帳票ファイル(.fr3)を読み込む
QuickReport用のコードは、手動でFastReport用のコードに置き換える必要がある

3. 帳票データを変換するコード(Delphi)
FReport := TfrxReport.Create(self);conv := TConverterQr2Fr.Create;conv.Source := QuickRep1; // QuickReportコンポーネント
conv.Target := FReport;
conv.Convert;
FReport.SaveToFile('converted_fromQR.fr3');
1010

他のレポート製品からの移行の流れ

変換元

変換先

RAD Studioのバージョン

Delphi4～XE、
C++Builder6～XE

Delphi XE2、
C++Builder XE2

プログラムコード

元コード

手動で変換＞＞

FastReport用コード

レポートデザイン

元デザイン

プログラムで変換＞＞

fr3データ11

6. まとめ！
• UNICODE対応なので多言語環境でもOK！
• 旧バージョンのDelphiもサポートしているので、既存プロジェクト、旧OSとの互換性を持たせたい場合でも安心！
– ※日本語環境で制限有り(提供される英語版で解決可能)• ライブラリはコンパクトであり、実行用バイナリに埋め込むことができる！
• 配布アプリケーションへレポートデザイナーを含めることができる、しかもロイヤリティフリー！
• DBXにも対応し、今後のRAD Studio製品によるDBアプリケーションの開発でも安心！
これらの特徴を持つレポーティング ツールは・・・

FastReportだけ！

12

ありがとうございました13参考：ネット上のリソース• 株式会社エージーテック– http://www.agtech.co.jp/• FastReports Inc.
– http://www.fast-report.com/• 他のレポートツールからのコンバート– http://www.agtech.co.jp/support/faq/fastreport/fastr
eport_vcl/convert/14