FastReportでデータバンドにヘッダーとフッターを配置するときの注意点



データベースのデータを表示させることができるデータバンドには、そのデータバンドの前後に項目名などのラベルを表示させることができる「ヘッダー」バンドや「フッター」バンドを配置できます。

しかし、デザイン時と実行時では見え方が違うため、並び順などに注意する必要があります。

単純なデータバンドから、マスター/詳細タイプのデータバンドまで、どのように対応するかについて解説しました。

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

今回は、データバンドのヘッダーとフッターについてお話ししたいと思います。

まず、フォーム上には、前回作ったCUSTOMERテーブルとORDERSのレーブルをそれぞれデータソースを使って、マスター/詳細の関係を持った状態で、データを用意してあります。

それぞれ、frxDBDataSet1と2に渡し、frxReport1をデザインしたいと思います。

すでに、データの中には両方のDataSetを設定してありますので、データツリーに2つのデータが表示されていることがわかるでしょう。

これを実行すると、単純にカスタマーの一覧が表示されるというような状態になっています。

これは、マスターデータにfrxDBDataSet1のCUSTNOとCOMPANYを表示しているからなんですね。

で、データバンドの中で、今言ったヘッダーとフッター、今回のトピックであるヘッダーとフッターというのは、まさにそのまま追加すると、ヘッダーとフッター、2つのバンドが表示されて、ここにいろいろ書き込むことができます。

ここでは単純に、マスターデータを表すための情報として、マスターヘッダーというものと、もう1個、これをコピーして、マスターフッターというのを作ります。

で、プレビューしてみると、エラーします。

なぜかと言うと、このヘッダーとフッターというのは、データバンドを挟まなければいけないので、今の例であれば、マスターデータというデータバンドを挟まなければ動かないんですね。

なので、これ、ドラッグしてあげて、これで本来の立ち位置になります。

デザインしている時には、このエラーが表示されませんが、プレビューなどを押すタイミングで位置が悪いとエラーしますので、今の動きを覚えておくと良いかと思います。

プレビューすると、このヘッダーとフッターは、当然のことながら、マスターデータのデータバンドのヘッダーとフッターに表示されるというのが、この動きから見てわかったかと思います。

では、ここにさらに、frxDBDataSet2を使った詳細データバンドを追加します。

そうすると、ちょっと奇妙な話なんですけれども、データバンドに対してヘッダーとフッターを挟まなければいけないので、今、この詳細データというのがフッターの下にあるんですね。
マスターデータを挟んだフッターの下にあります。

ここに対して、CUSTNOと、ORDERNOと、あとSALESDATEぐらいをちょっと置いておきますが、そうすると、なんか、このデザイン上ではイメージとしてマスターフッターの下に出てくるのかな、というふうに思うんですが、実際、プレビューすると、このように、1つの、あ、ちょっとこれわかりづらいですね。
段落的にずらした感じでお見せしましょう。

この状態でプレビューをします。
そうすると、マスターヘッダーがあって、カスタマーの一覧が、こう順々に並んでいる。
その内側に詳細データが並び、最後、マスターフッターがくるという、こういう動きになるんですね。

で、当然のことながら、詳細データにもヘッダーとフッター、付けられるんですが、またヘッダーとフッターを用意します。

で、マスターヘッダーと、同じように、詳細ヘッダー、同じく、詳細フッターですね。
これを用意します。

そして、これもヘッダーとフッターは、データバンドを挟むということで、この詳細フッターは、詳細データを挟むように配置し、プレビューを押すと、きちんとマスターヘッダーの下にカスタマーの一覧が、そしてその内側に、詳細データの詳細ヘッダーと詳細フッターが段々と、それぞれの詳細データの前後に表示されて、最後にマスターフッターが表示されるというふうに、動きとしては正しく動いていることがわかると思います。

並べてみると、なんか、イメージとしては、こう、囲いたい気持ちになるんですけれども、データバンドの前後にヘッダーとフッターを配置することで、データをきれいに見せることができるというのが、このヘッダー機能、フッター機能、まあヘッダーとフッターというバンドの使い方ということを知っておかないと、位置を動かして、まあ位置がおかしな位置に設定されてしまうと、まあエラーしてしまう、という状態になってしまうということが、この例からわかっていただけたのではないかと思います。

レポートを作る時の注意点として知っておくと良いかと思います。

本日は、以上です。