3

表現

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value)), 0), 0)

SSRS マネージャーでレポートを更新しようとすると、次のエラー メッセージが表示されます。

「テキストボックス 'textbox16' の値式には、集約関数に対して無効なスコープ パラメーターがあります。スコープ パラメーターは、包含グループの名前、包含グループの名前のいずれかに等しい文字列定数に設定する必要があります。データ領域、またはデータ セットの名前 (rsInvalidAggregateScope)。"

このメッセージを取り除くにはどうすれば問題を解決できますか? メッセージを検索しましたが、何らかの理由で検索結果が意味を成しません。

更新#1上記の式はこれでした

=FormatNumber(Avg(CInt(Fields!AvgLOSC4.Value.Split("|"c)(0))), 0)

別の問題を修正するために変更する前に。

4

3 に答える 3

4

何:

集計関数は、指定されたスコープ内で値を計算します。したがって、Sum 関数を使用すると、これらのフィールドのどのセットの合計を取得するかという質問に答えます。スコープは、データセット全体にすることも、Tablix 内のグループの 1 つにすることもできます。=Sum(Fields!Quantity.Value)そのため、テーブルの総計行と存在する可能性のある小計行の両方で関数を使用できるのです。

集約関数の 2 番目の引数を使用すると、操作対象のスコープを明示的に指定できます。そのため、小計内では、=Sum(Fields!Quantity.Value, "DataSet1")代わりに総計を取得するために を使用できます。これは、多くの場合、パーセンテージ計算などで行われます。2 番目の引数を使用しない場合、集計関数はそのセルの既定のスコープを使用します。

式の範囲を詳細に概説する MSDN の記事があります: https://msdn.microsoft.com/en-us/library/dd255256.aspx#Anchor_1

2 番目の引数を使用して集計関数に無効なスコープを使用させると、エラー メッセージ「集計関数に対して無効なスコープ パラメータ」が表示されます。SSRS のエンジンは、これらのフィールドのどのセットを操作するかわからないため、続行できません。

どうして:

それがエラーメッセージの意味です。ここで発生する理由と、この特定のケースでそれを修正する方法として、式をずらして使用されている引数を調べると役立つ場合があります。

=FormatNumber
(
    Avg
    (
        CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))
!!      , 0
     )
    , 0
)

この式は、Avg 集計関数の 2 番目の引数として 0 を使用します。0 は有効なスコープではないため、関数はエラーを生成します。これを修正するのは簡単です。この引数を削除するか、有効な値に置き換えてください。

于 2016-09-24T17:01:26.010 に答える
0

これは私にとってはうまくいきます:

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))), 0, 0)

あるいは:

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))), 0)

書式設定の要件が何であるかによって異なります。

Format式で行う代わりに、プロパティを使用して Textbox レベルで書式設定を設定することもできます。

于 2013-04-04T20:26:43.497 に答える
-2

グループ化 'Page' の Hidden 式に、集計関数に対して無効なスコープ パラメーターがあります。scope パラメーターは、含まれるグループの名前、含まれるデータ領域の名前、またはデータセットの名前のいずれかに等しい文字列定数に設定する必要があります。

于 2016-08-23T08:11:25.400 に答える