0

ストアド プロシージャを実行するレポートがあります。

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

ProjectID は複数選択ドロップダウンです。単一のプロジェクトを選択すると、正常に機能します。複数のプロジェクトを選択すると、次のエラーが表示されます。

"Must declare scalar variable "@ProjectID"

[データ] タブから実行すると問題なく動作しますが、プレビュー モードにすると問題が発生します。

4

2 に答える 2

2

クエリを式として作成することで、動作に似たものが得られました-あなたの例では

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

ターゲットSPの一部のコードは、複数選択文字列を一時テーブルに分割します。この一時テーブルは、結合で出力を作成するために使用されます。

なぜ私たちがこのようにしたのか思い出せません-それはSSRSへの移行の開始直後であり、それ以来少し進んでいます-しかし、それはあなたが説明する問題だったのかもしれません。

于 2009-02-10T13:50:53.463 に答える
2

同じエラーが発生しました:スカラー変数を宣言する必要があります。

最初に確認することは、クエリを text として入力するか、ストアド プロシージャをストアド プロシージャ タイプとして入力すると、ssrs がデータセット プロパティのパラメータ タブにパラメータ エントリを自動的に作成することです。それらを作成しないと、クエリを正しく読み取ることができません。

私の場合、OPENQUERY を使用して分析サービス キューブを呼び出し、多くの角かっこを含むフィールド名を参照していました。残念ながら、SSRS はコードを再フォーマットするのが大好きなので、適切にフォーマットされた "[Measures].[SomeMeasure]" は、この醜いエスケープ文字の混乱 [[Measures]].[Somemeasure]]] に変わります。

そのクエリを別のツールで編集し、それを ssrs に再コピーすると、ssrs はその構文を読み取ることができません! 生成するのに!したがって、余分な角括弧をすべて削除し、二重引用符とブームを置き換えて、再び機能し、パラメーターを生成します。

于 2011-10-18T00:01:57.313 に答える