- PR -

Crystal Report 9 VB.NETでレコード件数を取得

1
投稿者投稿内容
くわ
会議室デビュー日: 2004/03/22
投稿数: 2
投稿日時: 2004-04-23 00:51
OS:Windows2000,WindowsXP
Crystal Reports 9
VB.NET 2003

上記環境で開発を行っています。

レコード件数を取得して、ゼロ件の場合は特定の処理(印刷時刻の取得等)を
行わないようにしたいと思っています。

そこで、レコードの件数を取得する方法ですが、テクニカルサポートを閲覧しても


Q: レポートを印刷する前にレコード件数を取得し、0 件数なら印刷しない方法
A: 以下の ReadRecords メソッドと PrintingStatus オブジェクトを利用します。

記述例

'レコード件数を取得する。
Report.ReadRecords
' 読み取られたレコードの数を取得する。
If Report.PrintingStatus.NumberOfRecordRead <> 0 Then
'レコードが存在している場合、直接印刷する。
Report.PrintOut False
End If


と記述してあるのですが、ReadRecords メソッドとPrintingStatus オブジェクトを
どのように使用したらいいのか分かりません。MSDNにも載っていませんでした。
もしどなたか上記の使い方を知ってらっしゃる方、またはその他の方法で
レコード件数の取得を知ってらっしゃる方がいましたらご教授願います。

以上、よろしくお願いします。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2004-04-23 13:42
くわさんが参照している説明は CR.NET ではなく、昔からある RDC というより細かい制御ができる COM です。アンマネージドで参照すれば使えるかもしれませんが、試したことはありません。もし使えたとしてもサポートしてもらえないだろうし、プログラムも書き換えとなります。

で、調べてみたのですが、.NET の場合には該当するようなプロパティはありませんね。ADO.NET との連携を行っているのであれば、そちらでレコードの有無を調べるしかありませんね。この辺は、RDC との設計思想が違うようです。RDC はレコードを処理している最中のイベントを利用して色々できますが、CR.NET の場合はデータを渡してレポートの表示までは CR.NET 任せになるようです。

# 私が見落としているだけかもしれないので、サポートに確認するのが良いかと。

あと、パッケージの CR9 をお持ちであれば Report Application Server というのが付いていると思います。これを使うと Java アプリケーション サーバーへの組み込みが可能になるのですが、実は .NET でも使えます。設計思想が RDC に近いようで、細かい制御ができます。しかし、.NET のヘルプが無いような... 困ったものです。サンプルは英語の Web サイトにあるのでそれを参考にすることが出来ますがちょっと大変ですね。Java に関しては JavaDoc 形式のヘルプがついているんですけどねぇ。だから、私も Tomcat との組み合わせでしか利用したことがありません。

1

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