0

私のWebプロジェクトには、急速に成長しているTelerikレポートのセットがあります。私のデータ提供戦略は、各レポートにSQLクエリを含む会社のテキストファイルがあることです。長い'xis in(y、z、a、b、c ....)'、または'((x = 1)and(x <y))'のような複雑なフィルター基準を処理し、100回繰り返します、レポートのDataTableを取得するために使用する前に、テキストファイルクエリでテキスト置換を実行します。

すべてのレポートは、から派生したクラスでTelerik.Reporting.Reportあり、レポートのビジネスタイトルやレポートのプログラム名など、レポートのメタデータとして機能するプロパティが制限されています。レポートカテゴリ、レポートのSQLクエリファイルの名前、レポートの可能な代替表示ページ、レポートで無効にする一般的なフィルタパラメータのサブセットなどの属性のフィールドはありません。

ここで最初の候補ソリューションは魅力的ではありません。ファイル、web.config、またはデータベーステーブルのいずれかに「レポート設定」ストアを作成および維持します。このストアは実際のレポートから切り離されており、実際のレポートまたはストアで作業するには、頻繁で煩わしいコンテキストの交換が必要です。

私のより好ましいアイデアは、動的データメタデータスキームに似たものを使用することです。このスキームでは、エンティティクラスの属性が、エンティティのメタデータを保持する別のクラスに割り当てられます。また、拡張Telerik.Reporting.Reportして、レポートに添付する属性の辞書を追加し、そこからすべてのレポートを派生させることもできます。

私の現在の考えに対する批判、または他の選択肢に関する提案はありがたいです。

4

1 に答える 1

0

Telerikレポートの定義は純粋なC#/ VBクラスにすぎないため、レポートにメタデータを含めるために「標準」のC#アプローチを使用できるはずです。派生レポートクラスでは、設定を管理するために必要なフィールドやプロパティを追加したりReport、プロジェクトを拡張してより「エレガントな」ソリューションを作成したりできます。

Telerik Reportingの現在のバージョンは、レポート属性を設定するためのネイティブメタデータソリューションを提供していませんが、非常に興味深いアイデアです。Telerik Reportingチームにこのアイデアを検討するように依頼したので、すぐに詳細なガイダンスを提供する必要があります。

それまでの間、すべてのプロジェクトレポートで必要な「設定」値を簡単に設定できるようにする、計画された「レポート基本クラス」は正しい方向に進んでいると思います。

于 2009-08-24T22:53:55.717 に答える