【DO!BOOK・ページリンク】
2010_migaro_techreport_001   44 / 84

BOOKをみる

10秒後にBOOKのページに移動します


42  これで定義は完了だ。あとは、出力用 フィールドとしてDataText コンポーネ ントを貼り付け、Amount フィールド を指定すれば、帳票出力時に「数量×単 価」から「金額」が計算され、結果が帳 票出力されるというわけである。【図3】  このように、あらかじめ帳票レイアウ トに計算項目を使用し、計算式を埋め込 むことで、有効な帳票が実現する。その 際、帳票出力プログラムは、Rave Repo rtsにDataSet を渡すだけでよいのである。 3. 画像ファイルの 取り扱い  画像ファイルの帳票出力は、IBM i のOUTQ からは難しいと思われるが、 Rave Reports を使用すると容易に実現 できる。ここでは、帳票出力において画 像をセットする手順を紹介しよう。  Rave Reports での画像出力には、 Bitmap コンポーネントを使用する。こ のコンポーネントには、画像ファイルを 指定するFileLink プロパティが用意さ れているので、ここに出力するBitmap ファイルを指定すればよい。  では、プログラムから動的にファイル を指定するにはどうすればよいだろう か?  Rave Reports で作成するレポートは、 Delphi と同様にイベントを使用するこ とができる。つまり、画像ファイルが出 力される直前に発生するイベント OnBeforePrint で、出力したい画像ファ イルを指定すればよいのである。【図4】  ここでは、PictureFileStr というパラ メータを使用しているので、レポートの Parameters プロパティにPictureFile Str というパラメータを追加しておこ う。これでDelphi ソースから値を指定 することが可能になる。  Delphi ソースの記述例を示す。【ソー ス1】  これは、Edit1 コンポーネントに指定 されたBitmap ファイル名を、レポート のパラメータPictureFileStr に設定し、 印刷する手順である。本プログラムを実 行すると、画面に示すように選択した ファイルが帳票出力される。【図5】  この仕組みを応用することにより、画 像を埋め込んだ帳票が容易に作成できる ので、グラフィカルで利用価値の高い帳 票開発にぜひ挑戦していただきたい。 4. 出力先プリンタの 指定  Rave Reports で作成した帳票をその まま印刷しようとすると、デフォルトで 「印刷指示」画面が表示される。この画 面では、出力方法や印刷枚数、出力先プ リンタ等の指定が行えるため大変便利で あるが、残念ながらすべて英語表記と なっている。【図6】  では、この印刷指示面を使用せずに帳 票出力するにはどうすればよいだろう か? 帳票出力プログラム  帳票出力に関する設定情報は、TRvS ystem コンポーネントで管理できる。 つまり、このコンポーネントを使用する ことで、印刷指示画面の設定自体をプロ グラムで行うことが可能になる。  設定箇所は、次の通りである。【図7】 ・DefaultDest:出力先の指定 (プレビュー/ 印刷) ・SystemSetup/ssAllowSetup: 「印刷指示」画面の表示有無  これで印刷指示画面を経由せずに、帳 票出力が可能になる。  ソース例を示す。【ソース2】  このソースは、例えば、Delphi の フォーム上にTragioGroup(コンポー ネント名:rgSelect として定義)を配 置し、選択値に応じて「プレビュー」あ るいは「印刷」を切り替える場合の記述 である。 出力先プリンタの指定  これで、印刷指示画面を経由せずに、 Rave Reports が使用可能となるわけだ が、このままでは印刷時には、常に「通 常使うプリンタ」へ出力されてしまう。 では「出力先プリンタ」を切り替えるに はどうすればよいだろうか? 「出力先プリンタ」を切り替えるロジッ クを記述するには、デバイス定義ユニッ トであるRPDevice をUses 節に追加し、 RPDev オブジェクトを使用すればよい。 RPDev オブジェクトには、SelectPrint er メソッドが用意されているので、こ こに出力したいプリンタ名を指定すれば よいわけである。  ソース例を示す。【ソース3】  Windows標準の「印刷用ダイアログ」(T PrintDia log)を表示し、選択されたプリ ンタに帳票を出力するソース例である。 5. XMLファイルを ソースとした帳票出力  データ連携といえば、以前はCSV ファ イルを使用するのが一般的であったと思 う。現在でも利用する機会は多いと思う が、近年は、より柔軟な定義が可能な XML ファイルを使用することも多いだ ろう。【図8】  ここでは、XML ファイルを使用して 帳票出力する手法を紹介したい。  XML をDelphi で扱う方法はいくつ かあるが、今回はTClientDataSet を使 用する方法を紹介しよう。  TClientDataSet はこれまでも何度か 紹介しているが、クライアントPC のメ モリ上に展開可能なDataSet である。 実は、TClientDataSet には、XML を 読み込んでDataSet として利用する方 法がある。DataSet となれば、Rave Reports でそのまま使用可能になるとい うわけである。  では、どのようにすればXML ファイ ルをDataSet として使用できるのだろ うか? 変換ファイル(拡張子.xtr)  これを実現するには、TXMLTransfor mProvider というコンポーネントを使 用すればよい。このコンポーネントは、 XML 文書からDataSet へ変換するため のものである。その変換には、専用の変 換ファイル(拡張子.xtr)を使用する。  実はDelphi には、XML ファイルか ら変換ファイルを作成するためのマッピ ングツールが付属している。Delphi 開 発画面上で[ツール]→[XML マッパー] を選択すると、画面のようなツールが起 動する。【図9】  このツールより、対象となるXML ファイルを開くと、ドキュメントの構成 が左側のペインに表示されるので、