ActiveReports通信

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

ActiveReports これ知ってる?-第3回:CSVデータソースを使用する方法-

 今回はレポートのデータソースにCSVファイルを設定する方法を紹介します。
 
ActiveReportsにはCSVファイルをデータソースとして使用する独自の機能はありません(※)。このため、CSVからのデータ取得はコード上で独自に行い、DataTable等のオブジェクトに格納してからレポートに渡すという方法が基本的な方法になっています。
※現在発売中の最新版ActiveReports for .NET 11.0Jには製品の機能としてCSVデータソースが組み込まれました。詳細は第8回の記事をご覧ください。
 
しかしながら、この方法はコーディング量が増加し、テストにも工数が掛かります。先週開催された共同セミナーの会場でも他に良い方法はないかと質問をいただきました。
 
代替案としては、CSVファイルを読み込めるデータプロバイダ―を使用する方法が考えられます。たとえば、以下のページで紹介されているようなJet ProviderやODBC Providerを使う方法があります。
また、デザイナからCSVファイルを直接選択することはできませんが、セクションレポートの場合、CSVファイルを指定する接続文字列をデザイン時に設定しておくことが可能です。
 
たとえば、Jet Providerを使用して"C:\CSV\Data.csv"に接続する場合、[レポートデータソース]ダイアログの[OLE DB]タグに以下を入力します。
接続文字列:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CSV\;
Extended Properties="text;HDR=No;FMT=Delimited"
 
クエリ:
Select * From [Data.csv]
 [レポートデータソース]ダイアログの開き方は製品ヘルプの「レポートとデータソースの連結」トピックをご覧ください。
 
また、接続文字列の"Extended Properties"を変更することで、1行目のデータの取得有無を指定できます。上記の場合、1行目を取得する=ヘッダ項目なしとなり、フィールド名は"F1,F2,F3,…"となります。
 
1行目がヘッダ項目になっている場合は、
Extended Properties="text;HDR=Yes;FMT=Delimited"
としてください。
 
この方法を使用すれば、CSVをデータソースにしたレポートを簡単に作成できます。ぜひお試しください。
 
この記事はグレープシティが発行するメールマガジン「ActiveReports通信」の第14号(2016年9月発行)に掲載された記事を、加筆修正して転載したものです。