Crystal Reports XIを使用しています。私たちは、C#/ ASP.netで書かれた共有ポイントサイトに埋め込まれたCrystal Reportsを使用します。私たちのWeb開発者はコードでレポートを作成し、Select Formulaオブジェクトに追加することによって選択基準を渡します。選択式SQLコマンドオブジェクトでパススルーが機能しない
私が実行している問題は、SQLコマンドオブジェクトを使用すると、選択式がwhere句としてSQL Serverに渡されないということです。これにより、結果セット全体が照会され、サーバー上で制限されます。非常に大きなテーブルの場合、これはかなりのパフォーマンスヒットを引き起こしています。 FOO fooのFROM SELECT foo.id、foo.code、foo.name
選択基準として示されている: "someNameという"
場合等 {Command.name}ここ
の例です私はその後、fooテーブル全体が照会されたレポートを実行し、その後、クリスタルはセット全体からの制限を報告します。
代わりにコマンドオブジェクトのないテーブルに基づいて行うと、WHERE句がSQLクエリに追加され、すべての制限がdbレベルで行われます。
これは、SQLコマンドが非常に複雑になる可能性があり、下部にWHERE句を追加することが常に可能なわけではないためです。私の質問には、ある種のパススルーを強制する良い方法があります。私はC#の開発者と話し、パラメータを渡す方法を改めて尋ねるべきでしょうか?
ご協力いただきありがとうございます。
これは本当に良いアイデアです。ビューを使用して複雑なロジックを保存し、リンクを介してCR経由で追加することができます。次に、CRはwhere節の選択式を通過します。 – thaagenson