ActiveReports通信

.NET帳票開発ツール ActiveReports の技術情報をお届けします。

ActiveReports これ知ってる?-第5回:フィルタ機能を活用しよう-

 ページレポート/RDLレポートには、データセットやデータ領域(ListやTable)で表示されるデータを制限するためのフィルタ機能が用意されています。

f:id:ComponentOne_JP:20170721143851p:plain

 
使い方はとても簡単で、各設定ダイアログでフィルタを追加し、「式(フィールド)」、「演算子」、「値」を設定することで、特定のフィールドに対して条件付けを行うことが可能です。詳しくは製品ヘルプの「フィルタ」トピックをご覧ください。
 
この機能、認知度が低いのか、サポートサービスにもほとんど質問が届いたことがありません。
 
SQLクエリで抽出したり、レポート実行時にデータソースを設定することで代用も可能なので、知っているけど使う必要がないと感じている人も多いのかもしれません。
しかしながら、フィルタを活用すると他の機能では困難な仕様を簡単に実現できるケースもあります。たとえば、以下のような活用法が考えられます。

 XMLやCSVファイルをデータソースとする場合

SQLクエリによる抽出を行えない場合でも、フィルタを使用すればデータの一部のみをレポートに表示できます。コード上で独自にデータ抽出を行うことも可能ですが、フィルタを使用するとデザイナからの操作だけで同じことを実現可能です。

1ページに複数の表があるレイアウトの場合

データとしては1つだけど、グループ毎に別々の表に出力したいという要望はしばしばあるのではないでしょうか。このようなレイアウトをセクションレポートで実現する場合、コード上でデータの振り分けを制御するか、サブレポートを使用する方法が考えられますが、どちらの方法も処理が複雑になる傾向があります。ページレポートの場合、Tableデータ領域を複数配置し、それぞれに異なるフィルタを設定すると簡単に同じレイアウトを実現できます。

固定レイアウトの帳票を作成しているけど、サブレポートがないからページレポートは使えないと諦めていた方は、フィルタ機能を使用することで実現可能かもしれません。是非お試しください。

この記事はグレープシティが発行するメールマガジン「ActiveReports通信」の第16号(2016年12月発行)に掲載された記事を、加筆修正して転載したものです。