FastReportでデータベースのBLOBデータを図オブジェクトで表示させる方法



データベースのBLOGフィールドに保存された図データを、FastReportで利用する基本的な方法について解説しました。

ドリームハイブの山本です。

FastReportで、画像付きのレポートを作る方法についてお伝えします。

まず、今回使うデータというのは、InterBaseに付属しているサンプルファイルのdbdemosですね。

この中のBIOLIFEを使いたいと思います。

BIOLIFEというのは、データを表示させてみると、種別やカテゴリ、COMMON_NAME、SPECIES_NAME、種別の名前ですね。

こういったものとか、あとメモ情報とかGRAPHICが入っています。

特にこの中では、GRAPHICというのがBLOB型で入っていますので、このデータ、単なるテキストのグリッドとかではうまく表示できないんですね。

このデータをどのようにFastReportで表示するのかというのをお見せいたします。

これ、ちょっと閉じまして、このBIOLIFEを使いたいので、とりあえずドラッグして、ConnectionオブジェクトとBIOLIFEのTableをロードするためのTableオブジェクトを用意します。

ちょっと若干、配置変えますね。

そしてFastReportとTable、要するにDataSetが含まれてるオブジェクトをつなぐためのコンポーネントであるfrxDBDataSetを1個用意し、まずこのfrxDBDataSetにはBIOLIFEのTableを割り当てます。

そして、この割り当てたDBDataSetをFastReportで読み込むためには、ダブルクリックしてレポートを開き、レポート、データメニューから、frxDBDataSetにチェックを入れ、OKを押します。

右側のデータツリーの中のデータタブに読み込んだDataSetが表示されることを確認してください。

そしてこのデータを今回使うためには、バンドの中のマスターデータを1回使いましょう。

割り当てるデータセットは、先ほど読み込んだfrxDBDataSet1です。

OKを押します。

この中に、画像を読み込んだりするんですが、DBDataSet、このデータバンドというのは、データが含まれていれば、それをデータが存在する、つまりレコードがある限り繰り返し画面に表示するというものです。

ここでは、画面に表示する項目としてCOMMON_NAMEと最後のGRAPHICを表示したいと思います。

COMMON_NAMEはそのままドラッグすれば、実のところこれでテキストオブジェクトが用意され、ここにCOMMON_NAMEが表示されます。

同じく、GRAPHICオブジェクトもドラッグすると、一見こう出てくるんですけれども、グラフィックが表示されるんですけれども、このままだとプレビューを押すと、カッコ、四角いのが出ちゃってるんですが、要は画像、グラフィック、BLOB形式のデータというのが割り当てられたことになってないんですね。

なので、このドラッグしただけでは動かない。
なので、ここで図オブジェクトを用意します。

図オブジェクト、用意した時には、これがこのまま出てくるものではありません。

特に、画面上で設定を行うのではなくて、DataSetの中身を読みたいわけですから、これで利用するのはDataSetとDataFieldプロパティです。

DataSetは割り当てされていませんので、frxDBDataSet、外側のfrxDBDataSetを指定し、DataFieldに画像のデータであるGRAPHICを選択します。

大きさがちょっとこれだと足りないので、もう少し大き目にセットをして、これでプレビューをしてみましょう。

図オブジェクトを貼り付けた後に、DataSetとDataFieldを指定するだけで、モンガラカワハギとか、こういった一覧が簡単に一覧表示できるレポートが作れたことがわかると思います。

これがFastReportで図オブジェクト、特にデータベースに含まれているBLOBデータを利用して、図オブジェクトに対して割り当てるという作業を行う方法でした。

ここには、通常のレポートであれば、ハンコであったりだとかお客さんの顔写真であったりだとか、そのような画像オブジェクトを表示するレポートに利用できるものだと思っていただくと良いでしょう。

本日は、以上です。