- PR -

CrystalReportViewerの使い方

投稿者投稿内容
KOU
会議室デビュー日: 2002/06/14
投稿数: 9
投稿日時: 2002-07-04 12:04
現在CrystalReportViewerコントロールを使って「.rpt」ファイルを表示・印刷を行おうと思っているのですが、どうしても「オブジェクト参照がオブジェクト インスタンスに設定されていません」というエラーメッセージが表示されてうまくいってくれません(-.-;)
このエラーが表示されるまでは「解析エラー」のエラーがでていまして、エラーの個所がHTMLタグの
<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
という場所でエラーが起きてたので、参照設定で関連しそうな項目のプロパティの値を変えてみたんですけど(ローカルコピーをTrueに変えただけですけど・・・)これがいけなかったんでしょうか?
いろんなサイトに調べに行ったのですが(ほとんど外国のサイトだったので余りよく理解できなかったんですけど)、結局参考になりませんでした(;_;)
何かいい方法があれば教えてください。よろしくお願いします。
私の開発環境ですが
OS :Windows2000Professional
言語:ASP.NET
あと、IISのVer.5.0を使用しています

うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-07-04 13:56
>現在CrystalReportViewerコントロールを使って「.rpt」ファイルを表示・印刷を行おうと思っているのですが、どうしても「オブジェクト参照がオブジェクト インスタンスに設定されていません」というエラーメッセージが表示されてうまくいってくれません(-.-;)

確かに、CrystalReportViewerはややこしい!と僕も感じました。なので、作成されたレポートをブラウザーに表示させるまでの流れを書いて見たいと思います。

1.新しい項目の追加でCrystalレポートファイルを追加し、レポートの中身を作ります。これが拡張子「.rpt」のファイルになります。

2.レポートを実際に表示させるためのWEBフォームを作成します。

3.WEBフォームにCrystalReportViewerコントロールを貼り付けます。この段階では、レポートは表示されません。

4.WEBフォームにコンポーネントタブの中に入っているReportDocumentコントロールを貼り付けます。その際に先ほど作ったレポートを関連付けるためのダイアログボックスが表示されます。

5.CrystalReportViewerコントロールのデータバインディングプロパティの参照ボタンを押し、表示されたデータ連結ダイアログボックスのReportSourceに、先ほど作成したReportDocumentコントロールを割り当て、OKボタンを押すと、実際のレポートがデザイン画面上でプレビュー表示されます。

6.ブラウザーで表示する際には、コードを書く必要があります。以下が例です。
CrystalReportViewer1.ReportSource = cachedCrystalReport11
ページロードイベント内などに記述してください。

7.場合によっては、データソース元のデータベースに接続する必要があります。
CrystalReportViewer1.LogOnInfo.Item("テーブル名").ConnectionInfo.Password = "データベース接続用パスワード"
など、パスワードを明示的にコード内に書く必要があったりするようです。


という流れで大丈夫のはずです。KOUさんはおそらく、4以降の流れが記述されてないのではないでしょうか?

実際に使ってみるととても便利で、WEB上での帳票出力のかなりの部分を任せそうです。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
KOU
会議室デビュー日: 2002/06/14
投稿数: 9
投稿日時: 2002-07-04 15:44
うりゅうさん、本当にどうもありがとうございます。
うりゅうさんのご指摘どおり、私は[4]のコントロールを使用してませんでした。(^^;)
うりゅうさんに教えていただいたとおりフォームを作成し、
デザイン画面のプレビューまではたどり着いたのですが、その後のWEB上で開いてみたときに、やっぱりどうしても「オブジェクト参照がオブジェクト インスタンスに設定されていません」というエラーが消えてくれないです(;_;)
デザイン画面でのプレビューを見て一つ疑問が浮かび上がったのですが、
デザイン画面でのプレビューのツールの項目が全部「×」になってしまっているのですけど、
これが原因でエラーを引き起こしているのでしょうか?

うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-07-04 16:23
>デザイン画面でのプレビューのツールの項目が全部「×」になってしまっているのですけど、
これが原因でエラーを引き起こしているのでしょうか?

はっきりとはわからないのですが、おそらくそうだと思います。レポートの中に格納されているコントロールなどが、正しく動作していないのだと思います。

とりあえず、フォームレターなど極め単純なレポートを作成し、その後から複雑なものへと積み上げていくのがいいのではないでしょうか。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
KOU
会議室デビュー日: 2002/06/14
投稿数: 9
投稿日時: 2002-07-04 16:34
うりゅうさん、いつもどうもありがとうございます。
とりあえず、うりゅうさんの言う通り簡単なレポートから作成してみて、
原因を突き止めてみたいと思いますp(^_^)q
Anvi
会議室デビュー日: 2002/08/30
投稿数: 16
投稿日時: 2002-08-30 16:05
始めまして。私もCryatalReportの使い方がいまいち判らないで居るのですがこのスレッドで随分判ってきました。
しかし、OLE DBからSQLServerまで接続したのはよかったのですがCrystalReportViewerの方でLogOnInfoを記入しなければいないいといけないみたいで、デバックしてIE表示してみると
「ログオンに失敗しました。」と表示されてしまいます。
でも、初心者の私はどこにLogOnInfoを記入すればよいか判りません。どこに入れたら良いのでしょう?
OS :Windows2000Professional
SQLServer:2000
言語:ASP.NET(C# WEBアプリケーションで作成)
IIS:5.0

しろ
会議室デビュー日: 2002/08/20
投稿数: 4
投稿日時: 2002-08-30 17:36
わたしも同じところでずいぶん悩まされました。
分かってしまえば簡単なんですけど。(笑)

うりゅうさんの過去の書き込みにある順番に
設定していけば表示可能なはずです。

私の過去の質問です。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1918&forum=7&4

LogOnInfoのコードを先に書かないといけないと思い込んでAnviさんと同じ状態で
困ってました。
データを結合させた後にLogOnInfoのコードを書けばオッケーです。

あともうちょいです、がんばってください。
Anvi
会議室デビュー日: 2002/08/30
投稿数: 16
投稿日時: 2002-08-30 18:19
なんとなく判ったんですが、LogOnInfoを入れてみて試したんですがまたまた違うエラーが・・・
デバックすると、['CrystalDecisions.Shared.TableLogOnInfos' に 'Item' の定義がありません。]で止まってしまいます。
はて?なぜだ?
とりあえず頑張ってみます。即レス有難うございまた。

スキルアップ/キャリアアップ(JOB@IT)