0

私が解決しようとしている問題があり、あなたの助けに非常に感謝しています. 作成した SSRS 2008 レポートに複数値レポート パラメーターがあります。ドロップダウン リストから複数の値を選択すると、レポートは正常に実行されます。ただし、ドロップダウン リストで値を 1 つだけ選択すると、「クエリ パラメーター @XXXXXX の値式に含まれるエラー: インデックスが配列の範囲外でした。

SSRSレポートと多値パラメーターに慣れていないか、他の人が同じことを見たので、それは私が見落としているものでなければならないことを私は知っています。ここで他の投稿を調べましたが、同じ問題を見つけることができませんでした。

これが私が定義しているReportParameterです:

  <ReportParameter Name="reader">
  <DataType>String</DataType>
  <DefaultValue>
    <DataSetReference>
      <DataSetName>dsReaders</DataSetName>
      <ValueField>ReaderName</ValueField>
    </DataSetReference>
  </DefaultValue>
  <Prompt>Readers</Prompt>
  <ValidValues>
    <DataSetReference>
      <DataSetName>dsReaders</DataSetName>
      <ValueField>ReaderName</ValueField>
      <LabelField>ReaderName</LabelField>
    </DataSetReference>
  </ValidValues>
  <MultiValue>true</MultiValue>
</ReportParameter>

これを使用する QueryParameter は次のとおりです。

                <QueryParameter Name="@ReaderName">
                <Value>
                  =IIF(Parameters!reader.Count = 1, Parameters!reader.Value, ("'" + Replace(Replace(Join(Parameters!reader.Value, "~"), "'", "'''"), "~" ,"','") + "'"))
</Value>
                <rd:UserDefined>true</rd:UserDefined>
              </QueryParameter>

私が言及できるもう1つのことは、SSRS 2008 RTMを使用していて、このクエリパラメーターの値パラメーターで常にエラーが発生したことです。SQL 2008 SP3 にアップグレードした後、定義した他のクエリ パラメータの値パラメータが変化します。奇妙に思えますが、私はそれが私に何かを伝えていることを知っています.

これは SSRS 2008 および/または SQL 2008 (非 R2) の既知のバグですか? または、レポート定義に欠けている可能性があります。

4

2 に答える 2

0

IIF()の真の部分でValue(0)を試してください。

于 2012-08-19T20:44:36.663 に答える
0

私はまったく同じ問題を抱えていました。すべてのパラメーター値を 1 つの文字列に結合して回避策を実行し、値が次のように存在するかどうかを確認しました。

=iif(Array.IndexOf(Split(Join(Parameters!Detail.Value, ",").ToString(), ","), "0")>=0, "paramater with 0 value is checked", "parameter with 0 value is not checked")

array.indexofが返された場合-1、値はリストにありません。それ以外の場合は、目的の値の位置を返します。

于 2018-03-21T09:24:36.020 に答える