3

レポートのデータ ソースとして WCF を使用する必要があります。【サーバーモード】

ドット ネット 4.0/ SSRS 2008 R2/ ASP.Net 4.0

この背後にある考え方は、レポートから標準アプリケーション グリッドまで、アプリケーション全体に共通のビジネス ルールを適用することです。

基本的に、それは次のように機能します

通常は以下の通り

[RDL - SQL Server Data Provider - DB]

しかし、私たちが必要としているのは

[RDL - XML/カスタムデータプロバイダー - WCF方式 - ビジネスレイヤー - - DB]

メイン アプリも WCF レイヤーを使用します。実は実用上はインターフェースレイヤーなので、代わりにSSRSにWebサービスを使わなければならない場合は、このアプローチに利点があるかどうかを検討します.

私たちのアプローチに関するいくつかの記事を見つけました

http://weblogs.asp.net/jezell/archive/2008/02/21/using-wcf-endpoints-with-sql-reporting-services.aspx

http://www.codeproject.com/Articles/37270/Consuming-a-WCF-Service-from-an-SSRS-RDL-Server-Re

http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/aa0c8c5e-28a7-440f-a1c1-62e8bb184b8d/

http://msdn.microsoft.com/en-us/library/ms154655(v=sql.105).aspx

http://devblog.bardoloi.com/2011/09/using-wcf-web-services-as-data-source.html

http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx

いずれにせよ、ここでの制限を考えると

http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx#repservxmlds_topic5 そのすべてが少し怖くなっています。

もちろん、私がやりたくないことは、特定の道をたどることです。これは、レポートの設計機能やパフォーマンスに影響を与え、作成できるレポートの種類を制限する可能性があります。

上記のレイアウトについて意見や経験をお持ちの方がいらっしゃいましたら、ご意見やご意見をいただければ幸いです。

また、データの適切なマッサージなどを行うビジネスレイヤーを通過したデータを含むレポートを作成する方法について、可能な代替案についても非常にオープンです。

長文失礼いたしました。

リアム

4

2 に答える 2

3

私も今、同じ状況を考えています。この質問が出されてからしばらく経ちましたが、このシナリオに興味がある人のためにこれを追加します.

これまでのところ、努力する価値はありません。SSRS を WCF サービスと対話させるには時間がかかりすぎ、いくつかの制限があります。それらのほとんどは、提供されたリンクで概説されています。

私が今考えている2つの選択肢は次のとおりです

  1. レポートの前にサービスを呼び出し、出力をパラメーターとして渡します (レポートは別の問題である XML を解析する必要があります)。
  2. サービスを呼び出し、その出力をより表形式に変換します (すべてのデータセットがテーブルであるため) XML に変換し、パラメーターとしてレポートに送信します (これも解析する必要がありますが、元の出力をそのまま使用するよりも簡単な場合があります)私たちの場合には)
  3. WCF 呼び出しの処理により適したカスタム データセット拡張機能を作成し、プロセスをより細かく制御できます。

全体として、私はこの問題に関して窮地に立たされています。なぜなら、すぐにこれを達成する簡単な方法がないからです。

これが誰にも役立つことを願っています!

于 2012-08-14T16:15:07.360 に答える
2

これが私たちのソリューションであり、これまでのところ静かに機能しています。ただし、多くの作業が含まれます。

カルロスが提供した回答のオプション 3 は、大規模なレポートのために WCF レイヤーを介して大量のデータを転送する際に問題が発生したときに取るべき方向でした。

基本的に、カスタム データ処理拡張機能は WCF レイヤーへの呼び出しを行い、返されるデータ量が大きい (特定のしきい値を超える) 場合、このデータはキャッシュされ、カスタム データ処理拡張機能にインジケーターを返します。すべてのデータを取得するために必要な呼び出しの量。

次に、必要な数の呼び出しを行います。

したがって、20 万分の 1 のレコードの場合、WCF を 20 回呼び出す必要があり、呼び出しごとにデータが SSRS データセットに追加されます。

レポート ビューアーは 11,000 ページ以上のデータを問題なく表示しますが、Excel にエクスポートするには SSRS 2012 で実行する必要があります。

500,000 件を超えるレコードを Excel にエクスポートするには、10 分かかる場合があります。実際には、Excel ファイルを開くのに時間がかかります。:)

于 2012-10-17T12:41:11.617 に答える