は、私はそれで、これとSSRSの発現を有する:SSRS式 - #エラー、明らかに正しい表現で
=IIF(
Fields!CUT.Value.ToString().Length > 1
,IIF(
Fields!CUT.Value.ToString().Contains(","),
Fields!CUT.Value.ToString().Substring(0, Fields!CUT.Value.ToString().IndexOf(",")),
Fields!CUT.Value.ToString()
)
,""
)
翻訳:フィールドが,
が含まれてい
場合は、私のフィールドのsubstring
を取得最初の位置から,
の位置までです。フィールドに,
が含まれていない場合は、フィールド全体を取得してください。
Probelm:
私はCOMMAが存在しないすべてのページに#Error
を取得します。 COMMAがある場合、期待どおりに動作します。フィールドの1つ、値は4
です。別のシナリオでは、値は17/64" Corrugated
です。私はそれらの両方のために誤りを得る。
私はいくつかの異なるアプローチを試してみた:
LIKE
の代わり
Contains
=IIF(
IsNothing(Fields!CUT.Value)
,""
,IIF(
Fields!CUT.Value LIKE "*,*",
Mid(Fields!CUT.Value, InStr(Fields!CUT.Value, ",") + 1, (LEN(Fields!CUT.Value) - InStr(Fields!CUT.Value, ",") - 1))
Fields!CUT.Value
)
)
を使用し
私は私に新しいフィールドを追加しました私が試した何
の代わりに
dataset
がXXXX
で置き換えられました。私はSSRSが文字列の一部として,
について話していることを理解できないかもしれないと思った。クエリを変更して、XXXX
があるかどうかを確認しました。それでも同じことがあります#Error
ファイルを削除し、
.data
ファイルを削除し、プロジェクトを削除してプロジェクトを再構築します。なぜなら、これは明らかに間違っているわけではないからです。だから私はおそらく最新バージョンのレポートを見ていないと思った。
何もしていないようです!私は何か悪いことに本当に近いです!このことは私を狂ってしまう。
質問:
- 誰もが私の表現のいずれかに何かを参照してください?
- 私が達成しようとしていることに対してより良い方法がありますか?
,
がある場合は、,
の前にすべてを渡してください。そうでなければ、私にすべてを与えてください。
編集1:異なる分野で、私はこれに非常に似て何かやっている、ということは注目に値する
:,
である場合には、
IIF(
IsNothing(Fields!CUT.Value)
,""
,IIF(
Fields!CUT.Value LIKE "*,*"
," | Length: " & Mid(Fields!CUT.Value, InStr(Fields!CUT.Value, ",") + 1, (LEN(Fields!CUT.Value) - InStr(Fields!CUT.Value, ",") - 1))
,""
)
)
これが何をやっていることですがその同じフィールドは、,
の後に私にすべてのものを与え、それを| Length:
に付け加えます。 ,
がない場合は、空白を表示してください。""
これは完全に正常に動作します。 ,
があり、,
が存在しない場合。だから私はマイクロソフトがSSRSを使って私を夢中にさせていると結論づけました。
SSRSは、関係なく、最初の文が真か偽かの 'IIF'のすべての部分を評価します!'フィールドCUT .Value.ToString()。Substring(0、Fields!CUT.Value.ToString()。IndexOf( "、")))。コンマがない場合、この式はコンマの位置を見つけることができません。しかし、私は 'IndexOf'関数がどのように動作するかを正確にはわかりませんし、現時点でテストする手段がないため、これを単なるコメントとして残しています。 –