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月発行)に掲載された記事を、加筆修正して転載したものです。

ActiveReports これ知ってる?-第2回:ページレポートから共通処理を呼び出す方法-

今回はページレポートで外部DLLを参照し、その機能を呼び出す方法を紹介します。

f:id:ComponentOne_JP:20170721111030p:plain

 
コード形式のセクションレポートを使用する際、書式設定や計算処理は共通クラスに記述し、各レポートから呼び出す実装をすることも多いかと思います。
 
XML形式のページレポートの場合、一見こういった実装方法はできないように思えますが、実は、カスタムアセンブリを作成して参照に追加することで、ページレポートからも共通処理を呼び出すことができるのです。
 
参照の追加はとっても簡単。レポートダイアログの[参照]からDLLを追加し、レポート内で利用するクラス名とインスタンス名を登録するだけです。手順の詳細は製品ヘルプの「スクリプトの使用」トピックをご覧ください。
 
参照を追加したアセンブリ内のコードは、式やスクリプトから利用可能です。たとえば、名前空間"CustomAssembly"のクラス"CustomClass"に定義されたFormat関数を使用してデータフィールドを整形する場合、コントロールのValueプロパティに以下のように記述します。
=CustomAssembly.CustomClass.Format(Fields!Amount.Value)
なお、上記のように記述できるのはスタティックメンバに限られますが、クラスインスタンスを追加し、インスタンスメンバにアクセスすることも可能です。インスタンス名を"myCustomClass"とした場合は、以下のように記述します。
=Code.myCustomClass.Format(Fields!Amount.Value)
カスタムアセンブリを使用することで同じ処理を複数のレポートに記述する必要がなくなり、管理がより楽になります。ぜひお試しください。
 
この記事はグレープシティが発行するメールマガジン「ActiveReports通信」の第13号(2016年8月発行)に掲載された記事を、加筆修正して転載したものです。

ActiveReports これ知ってる?-第1回:コントロールを一括で調整する方法-

今回から ActiveReports を使うときに知っていると、ちょっと役立つ情報を紹介していきます。

 

第1回はデザイン時に役立つ「書式メニューでコントロールを一括調整する方法」です。

 

レポートを実際に印刷したら用紙からはみ出してしまい、全項目を少しずつ移動することになってしまった経験のある人は多いのではないでしょうか。

 

そんな時に便利なのが[書式]メニューです。

Visual StudioでActiveReports のレポートデザイナを表示すると、ツールバーから[書式]メニューが選択可能になります。

 

たとえば、デザイナ上で複数のコントロールを選択した状態で、[書式]メニューの[整列]>[左]を選択すると、全てのコントロールの左端の位置を揃えることができます。

 

また、コントロールを隙間なくきっちり1行に揃えるには、対象となるコントロールを全選択した上で、以下を実行します。

(1)[書式]-[左右の間隔]-[削除]

(2)[書式]-[整列]-[上]

この機能を使用すれば、コントロールを1つ1つ動かしたり、Locationプロパティをコピペしたりといった面倒な作業から解放されます。

 

[書式]メニューには他にも、サイズを揃えたり、フォームの中央に配置する機能もあるので、ぜひ活用してみてください。

 

なお、今回解説した内容は[ActiveReports 11.0J]ツールバーを使用した場合においても同等のことが実現可能です。

 

詳細は製品ヘルプの「ツールバー」トピックをご覧ください。

 

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