- PR -

CrystalReportでユーザ定義関数が使えるか

1
投稿者投稿内容
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-07-03 15:59
いつもお世話になっております。

今回、データベース上に、書式を統一するためのユーザ定義関数を作成したのですが、それをCrystalReportから使用することは可能でしょうか?それとも、システムの関数以外は使用できないのでしょうか?

よろしくお願いします。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2003-07-05 01:25
Version 9 では、「コマンド文字列」ってのに、直接関数名を指定すれば利用可能です (SELECT 文をそのまま記述する)。でも、.NET では出来ないかもしれませんね。
ADO を経由するわけにはいかないのですか? ADO 側で関数を利用するコマンドを使って、Crystal Reports には ADO のレコード セットを渡せば OK かと。
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-07-05 13:26
いつもお返事ありがとうございます。
やはりADO側で処理を行うしかないかもしれませんね。
ただ、その時はやっぱり処理が重くなってしまうのでしょうか?
現在はVIEWを作成してそれをレポートに配置しているのですが、そこに式を呼び出す処理を追加すると、重たくなってしまうような感じがします。
C#に関してもデータベースに関しても全くの初心者なので、どの方法を用いたらよいかわからなくて戸惑っている状態です。
もしかしたら見当違いなことを言ってしまうことがあるかもしれませんので、その時はご指摘、ご指導よろしくお願いします。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2003-07-05 22:14
ユーザー定義関数はデータベース側の話ですよね? それとも Crystal Reports の関数ですか?
もし、データベース側で定義した関数であれば、速度はデータベースに依存します。これは ADO でもビューでも同じです。もちろん、ADO の使い方による速度差はありますが、関数自身の実行速度はかわりません。

Crystal Reports がデータを加工するのは、データベースでは行えないソートを指定したり、集計を入れた場合などです。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2003-07-05 22:49
前の返事を書いたあと、本質的な問題が見えていないことに気がついたので追記します。

パフォーマンスが気になるほど違うのであれば、ユーザー定義関数が本当に必要なのかどうかを考える必要があると思います。
データの書式が重要であればデータを格納する時点で整えておくべきだと思いますし、書式のためにデータベース側のリソースを無駄遣いするのはどうかと思います。
どの程度の書式設定かはわかりませんが、Crystal Reports 側でも書式制御は行えますので、それを利用することを検討してみては如何でしょうか。もちろん、Crystal Reports 側の実行速度が若干落ちるでしょう。
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-07-06 10:10
お返事ありがとうございます。
今回はデータベースでシステム全体の書式を一括管理してしまおうというものでした。
そのためCrystalReportにある書式設定ではなくデータベースにある書式にするために、データベース側でユーザ関数を作ったのです。
早さも大事なのですが、それよりもいかにシステムがまとまっているかが課題だったので、データベース内で式を呼び出してそれをレポートに表示という形にしたいと思います。
どうもありがとうございました。(^^)
1

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