0

ユーザーからの SQL クエリを受け入れる SSRS でレポートを作成し (文字列の場合もあります)、それを実行して結果を表示したいと考えています。以下のクエリでレポートを作成しようとしました

SELECT @select
FROM @from
WHERE @ where

また、各入力を取得するために、ユーザーに 3 つのテキスト ボックスを表示することを計画しました。しかし、これにより、レポート自体の作成中にエラーが発生します。
これを行うための提案はありますか?

4

1 に答える 1

1

ハードコードされたクエリの代わりに式を使用するようにデータセットを設定できますが、共有データ ソースではなく埋め込みデータ ソースを使用する必要があります。埋め込みデータ ソースを使用する場合は、[fx] ボタン (式ボタン) をクリックして、SQL クエリとして解決される式を入力します。次のような式で、ユーザーから取得した 3 つのパラメーターを使用できます。

="select " + @select + " from " + @from + " where " + @where

この方法の問題点は、Reporting Services がクエリを一連のフィールドとして解決し、それがレポート レイアウトで定義されることです。クエリの各実行で同じ数のフィールドを保証でき、エイリアス (column_1、column_2 など) を使用して列名を一般的な列名に変換できる場合、次のようなレポート レイアウトを作成できます。クエリの結果を表示します。Select パラメーターに列名を入力しようとしている人が、columnA を column_1 として、columnB を column_2 として、などと入力したい (または入力することを知っている) とは思えませんが、間違っている可能性があります。より大きな問題は、毎回正しい数の列が使用されていることを検証する方法がないことです。レポートにカスタム関数を記述し、必要に応じて追加の列を埋めることができると思います。

また、各パラメーターでユーザー入力を検証する際にも問題がありますが、これに対処するカスタム関数を作成することもできます。肝心なのは、それは些細なことではなく、実際には SSRRS が使用されることを意図した方法ではないということです。しかし、それに十分な労力を注げば、やりたいことを実現する方法がきっとあるはずです。

于 2012-08-10T22:43:26.240 に答える