0

レポートを作成していて、コンマ区切りの文字列をテーブルの 3 つの列に分割する必要があります。

string = 'some text, some text, some text'

しかし、刺し傷に常に 2 つの昏睡状態があるとは限りません。

string = 'some text, some text'

3列目の値を取得しようとすると

=Split(Fields!GLDescription.Value, ", ").GetValue(2)

このコードにより、列に「#Error」メッセージが表示される場合があります。私はそのように長さをチェックしてこれを解決しようとしました

=IIF(Split(Fields!GLDescription.Value, ", ").Length >= 3, Split(Fields!GLDescription.Value, ", ").GetValue(2), "")

しかし、それでも同じエラーが発生しました。配列キーが存在するかどうかを確認する方法はありますか?

4

1 に答える 1

1

これまで見てきたように、問題は、SSRSIIf式がショート サーキットに適していないことです。2 列と 3 列のフィールドで機能する回避策を考えることができます。

次のような表現を試してください。

=IIf(
    Split(Fields!GLDescription.Value, ", ").Length = 3
    , Mid(
        Fields!GLDescription.Value
        , InStrRev(Fields!GLDescription.Value, ", ") + 2
        , Len(Fields!GLDescription.Value) - InStrRev(Fields!GLDescription.Value, ", ") + 2
    )
    , "No val 3"
)

データセットを使用:

ここに画像の説明を入力

結果を与える:

ここに画像の説明を入力

考えられるすべての状況に対応できるわけではありませんが、データには十分かもしれません。

于 2013-03-07T16:38:46.007 に答える