- PR -

OracleでCrystalReport

1
投稿者投稿内容
しろ
会議室デビュー日: 2002/08/20
投稿数: 4
投稿日時: 2002-08-20 10:06
はじままして しろと申します。
以前から当掲示板を拝見させていただき
勉強させてもらってます。

以前書き込みのあったCrystalReportの利用方法をもとに
AccessMDBを使ったテストデータでは無事作成することができました。

今回書き込みさせてもらったのはデータベースをORACLEにした場合
どうしてもエラーがでてしまいます。
まず現在のわたしの開発環境ですが、
OS :WindowsXPProfessional
言語:ASP.NET(VB)
IIS:Ver.5.0
データベース:OracleをODBC経由で使用中

ログオンできませんとエラー表示がでるので
CrystalReportViewer1.LogOnInfo.Item("テーブル名").ConnectionInfo.Password = "データベース接続用パスワード"
とコードを追加しましたが「指定された引数は、有効な値の範囲内にありません。」とでます。
LogOnInfo.Item("テーブル名")の部分が問題だと思いいろいろ試してみましたが
すべてだめでした。

ぜひアドバイスお願いいたします。
JK
会議室デビュー日: 2002/08/20
投稿数: 5
投稿日時: 2002-08-20 18:40
はじめまして、JKです。

私も同様の問題で悩みましたが、以下の方法で解決できました。
DataSetを使用している場合、参考になると思います。

(1) デザイン時にReportViewerのReportSourceを設定しない。
(2) ReportSourceを実行時に設定するよう、次のコードを記述する。

  // データセットのフィル
  dataAdapter.Fill(targetDataSet);
  // CrystalReportオブジェクトの生成
  targetReport rep = new targetReport();
  // CrystalReportへDataSetを連結する
  rep.SetDataSource(targetDataSet);
  // ReportViewerのReportSourceを設定する
  viewer.ReportSource = rep;

エラーが発生する原因は、DataSetが空の状態で参照される
ためで、Fillメソッドを実行した後データのバインドを
実行する必要があるようです。
しろ
会議室デビュー日: 2002/08/20
投稿数: 4
投稿日時: 2002-08-21 15:25
さっそくの回答ありがとうございます。
ODBC接続で試してたのですが、DataSetでの使用ということでしたので
DataSetを作成して試してみました。

ここでまた質問になってしまうのですが現在VBでコード作成しております。
JKさんのC#での記述、
  // CrystalReportオブジェクトの生成
  targetReport rep = new targetReport();
がどうしてもVBで記述できません。

MSDNで調べても
  // クラス定義の先頭に、次のように記述します。
  Public CrystalReport1 oRpt = new CrystalReport1();
とJKさんと同様の記述しか見当たりません。

VBでの記述様式をご存知の方、ぜひ教えてください。
よろしくお願いします。


うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-08-21 15:57
Oracleというタイトルのため見逃していたのですが(笑)、

おそらく、しろさんが直面されている問題は、以下の過去書き込みを参照していただければ、解決するのではないかと思います。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1572&forum=7

VBでの生成手順の流れを記述しています。コードが書いてないので、上記の流れが終わった後のサンプルコードを以下に上げておきます。参考になれば幸いです。


Protected WithEvents CrystalReportViewer1 As , _ CrystalDecisions.Web.CrystalReportViewer

Protected WithEvents cachedCrystalReport11 As test.CachedCrystalReport1

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As , _ System.EventArgs) Handles MyBase.Load

CrystalReportViewer1.ReportSource = cachedCrystalReport11
CrystalReportViewer1.LogOnInfo.Item("データベース , _名").ConnectionInfo.Password = "実際のデータベースパスワード"

End Sub

_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
しろ
会議室デビュー日: 2002/08/20
投稿数: 4
投稿日時: 2002-08-21 16:23
うりゅうさん、JKさんどうもありがとうございます。
無事帳票の表示ができました。

もともと、うりゅうさんの過去の書き込みを元に検証してたのですが
7ステップ中の最終ステップでReportSourceへの関連付けよりも
LogOnInfoの宣言が先であろうと考えてLogOnInfoのコードを先に書いて
いたのが間違いの元でした。(コードを前後に書き換えることはまったく
頭になかったです。)

CrystalReportを利用し始めて4日目にしてやっとWeb上での確認が出来ました。

これから実際のデザイン部分について検証して使いこなせるようにして行きます。

ありがとうございました。

**** 最後に前の質問の自己解決 ****************************************
C#での記述、
  // CrystalReportオブジェクトの生成
  targetReport rep = new targetReport();

VBでの記述の場合は、
  Dim rep As New Test.targetReport()
でオッケーでした。

1

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