データベースの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データを利用して、図オブジェクトに対して割り当てるという作業を行う方法でした。
ここには、通常のレポートであれば、ハンコであったりだとかお客さんの顔写真であったりだとか、そのような画像オブジェクトを表示するレポートに利用できるものだと思っていただくと良いでしょう。
本日は、以上です。