ドリンクバーゲン会場

Crystal Reportsを使ってみました。2008年09月20日 11時08分48秒

VisualStudio2008を使って実際にCrystalReportsを試してみました。
VisualStudio自体を全く使ったことがなく、参考書のたぐいも全く手元にない中で、どこまでできるのか不安なのですが、ある程度使えるものであるという確証を持たないと、参考書などの購入ができないのでなんとか確認してみたいと思っています。

VisualStudioを立ち上げ、「新しいWebサイト」を選ぶと、テンプレートが選択できるようになっていました。
そこで、「ASP.NET Crystal Reports Web サイト」を選択しました。
作成時に言語を指定するところがあり、「Visual Basic」を選択しています。

作成すると、「Crystal Reports ギャラリ」の画面が開き、どのようなレポートを作成するのか聞いてきました。
新規作成には、「レポートウィザードを使用」、「空のレポート」、「既存レポートの使用」の3つがあり、今回は「空のレポート」を選択しました。

その下には、「エキスパートの選択」とあり、ウィザードを使用するときには選択できるようになっています。「標準」、「クロスタブ」、「宛名ラベル」の3つが選択できるようになっていますが、今回のように「空のレポート」の際には選択できないようになっています。

立ち上がってきた画面はBIRTなどと同じようにヘッダやフッタ、詳細の画面がでて、同じような雰囲気です。

今回は、Web公開までの手間がどの程度かかるのかを知りたいので、とりあえず、データベースからデータを取り出し、それを表示したレポートをさくせいしてWebで公開できるかどうか試してみます。

まず、データベースを登録する必要があります。
「フィールドエクスプローラ」画面の「データベースフィールド」を右クリックし、「データベースエキスパート」を選択します。
画面内に「接続の新規作成」というのがあり、その中に「ODBC]があったので、その中の「新しい接続先の作成」というのを今回は選んでみました。

他にも「OLE DB」とか、「ADO.NET」とかあるのですが、よくわかりません。
登録されているデータソースからテスト用のデータベースを選択し、接続用のIDとパスワードを登録することで、データベースをまず登録します。
データベースの登録ができたら、次にそのデータベースの中から必要なテーブルを選択していきます。

今回はチェックだけなので、適当にひとつテーブルを選択しました。
登録が完了すると、データベースフィールドに登録したテーブルが出てきます。
テーブルのを開くと項目の一覧が出てくるので、レポート画面にドラッグすると、その項目がレポートに登録されました。

レポート画面にはプレビューの機能があるので、早速プレビューしてみると、ちゃんとデータを表示しています。

レポートの上部には、移動ぼたんがあり、ほかのデータにも移動ができています。
基本的な使い方は、BIRTと同じような形で行けそうなかんじですね!

あとはこのレポートをWebから見ることができるかどうかです。
ネットで方法を調べてみると、Webの画面に張り付けることができるようです。

Webフォームを開くと、フォーム上に「Crystal ReportViewer」のコントロールが配置されていました。
viewerのプロパティで「ReportSourceID」を先ほど作成したレポートファイルに変更します。
変更すると、フォーム画面が作成したレポートの画面に変わってしまいました。

この時点で動作チェックができるのかどうかよくわからなかったのですが、試しに「デバッグ」を実行してみました。
ブラウザの設定でデバッグを許可しない設定になっていたため、警告がでてしまったので、インターネットオプションの設定を変更し改めてデバッグを実行してみると、インターネットエクスプローラーが起動し、データを無事に表示していました。

VisualStudioでの動作は問題ないようなので、Webサーバーに配置し、実行してみようと思います。

JAVAみたいな、「war」ファイルを作ったりできるのかと思ってあちこち見ているのですが、その手のものが見当たらずどうやってWebサーバーに登録するのかわからなかったのですが、「ソリューションエクスプローラー」で「Webサイトの発行」というのを見つけたので、実行してみることにしました。
Webサイトを選択し、実行すると、正常に発行されたようです。

早速作成したサイトを開いてみると、詳細な情報が必要だということで、データベースに接続するための、IDとパスワードを入力する画面が表示されてしまいました。

VisualStudioでは登録したのですが、その情報は引き継がないようで、どこかで設定する必要があるようです。
とりあえず、画面上で入力してログオンすると、作成したレポートが表示されています。

画面の上部には移動ボタンや検索用の項目もあり、件数が多い場合には、すごく便利です。

今回CrystalReportsでは、全くコーディングせずに印刷まで行うことができてしまいました。

データベース接続用のIDとパスワードの入力を求めてくる問題が残ってはいますが、かなり簡単にできたので、Javaでの開発と思っていましたが、.NETでの開発を真剣に考えてみたいと思います。