FastReportのテキストオブジェクトでデータベースのフィールドを表示させるテクニック



FastReportのテキストオブジェクトでは、データベースの情報を表示することができます。

その書き方のテクニックなどを解説しました。

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

本日は、FastReportのデータベースに接続した状態で、テキストオブジェクトの組み合わせについてお話ししたいと思います。

今このフォーム上では、FireDACを利用してCUSTOMERテーブルに接続した状態のFireDACオブジェクトと、それをFastReportにつなぐためのDBDataSetコンポーネント、DataSetのところにきちんと設定されてますね。

それを接続するためのfrxReportが1個、用意されています。

レポートを開きまして、すでにデータの中にはもうレポートデータセットを選択してありますので、右側のデータツールに一覧が表示されています。

この中で、何でもいいんですけれども、例えばコンタクトの名前とかを画面に表示したいというのであれば、CONTACT_FIRSTというのをドラッグすればいいということです。

プレビュー出してみると、確かに名前が出てくることがわかります。

これは、ドラッグした時に作られるものは、単なるテキストオブジェクトなんですね。

実際、左側のこのマスターデータの中に入っているこのオブジェクトインスペクタで見ると、単なるfrxMemoというテキストオブジェクトであることがわかります。

そして、これをダブルクリックして編集することで、いろいろな式タグなどが利用できるんですけれども、まさに見てわかるとおりテキストオブジェクトなので、自由に書き換えることができるんですね。

ここが、例えばCONTACT_FIRSTなので、名前とかっていうふうに書いて、これでOKを押してあげると、きちんと「名前:」というのがつながっていることがわかります。

で、プレビューすると「名前:Dale J.」ですかね。
こういうのが出てくることがわかるでしょう。

非常に簡単にテキストボックスの中身を編集することができるので、もう何個も何個もテキストオブジェクトを配置して、別の名前とか何とかっていうのを付けなくても、テキストオブジェクトの中で式を使っていけばOK、ということです。

式というのは大カッコ[]で挟まれた部分のことでしたね。

また、ここにCUST_NOというのを1個表示してみますが、CUST_NOというのは数値です。

なので、この数値を、ナンバーなんで、かけても割っても意味はないんですけれども、式タグの中には演算ができるというお話をしました。

なので、CUST_NOを作るというのをもう1回、こっちでCUST_NOを出して、かける100とやってみましょう。

これでOKすると、中に式タグとして定義され、これをOKしてみると、1001の100倍とかっていうのが確かに出ているんですが、今の式の内容を見て欲しいのが、式タグにかける100などをかけるということは、当然なんですが、データベースのフィールドを表示するときには、ちょっとだけ事情が変わり、DBの表示をするための式には、必ず<>で囲ってあげるっていう、こういうことをしなきゃいけないのですね。

これを書かないと、データベースのフィールドがうまく表示されずに、ちょっと消してみればわかりますが、これで何をやってるかわからなくなってしまうので、エラーしてしまうんですね。

CUST_NOフィールドが見つかりません、これは引っ付いちゃった状態で探そうとするのでうまくいかない、ということがわかると思います。

なので、ここでの注意点というのは、式タグの中で使うときには必ず、<>で挟んであげると。

で、それ以外の大カッコ[]以外の部分は、そのまま使うことができますので、顧客番号と書いてOKしてあげれば、きちんと10倍されたものがつながって表示されるというようなことが確認できますね。

このように、テキストオブジェクトというのは、式タグと組み合わせることによって、データベースのフィールドを表示しつつ、さらに計算などを行うこともできる。

つまり、消費税率とかを計算したりとか、他にもちょっとした行単位での小計を出したりだとか、そういう帳票が必要な場合には、この式タグをうまくテキストオブジェクトとデータセットをうまく組み合わせることによって、1つのテキストオブジェクトで実現できるということがわかっていただければいいかと思います。

本日は、以上です。