2017-01-25 6 views
0

SSRS2012のパラメータ内でこのコードに問題があります。正しい方法(SSRS)を解決できないIIF構造

=IIF(InStr(Parameters!P1.Value,"@")=0, 
"missing @", 
Left(Parameters!P1.Value(InStr(Parameters!P1.Value,"@")-1))) 

私の目的は、それは私が印刷されていない場合は、パラメータP1は「@」が含まれているかどうかを確認することで、「行方不明@」そう、私は「@」( "の後に何をそのパラメータから削除します@ "inculded)。

例:
P1 = 123456 - >印刷 "欠落@"
P1 = 123 56 @ - >プリント123

問題は、SSRSがエラーを低下することである:「引数 '長' しなければなりません「0以上」の値を挿入すると「0以上」となります。 (「@」の値を挿入するとすべてがうまくいく)

IIFが2つの式を最初に解決するように見える(真と偽ではなく)最初の条件の評価。

いくつかの助けを探しています。ありがとう!

+0

の可能性のある重複した[IIF関数は、SSRSで両方のパスを計算するか、それが短絡していますか?](http://stackoverflow.com/です質問/ 1204179/does-the-iif-function-compute-both-paths-in-ssrs-or-is-it-short-circuited) – SearchAndResQ

+0

は重複ではなく、スイッチ機能を試してみたところ、同じです –

+0

パラメータには「@」記号だけが含まれ、それ以外は何もありません。 –

答えて

1

それはここでは、奇妙なバグである一つの解決策

=replace(replace(IIF(InStr(Fields!P1.Value,"@")<> 0, 
left(Fields!P1.Value,InStr(Fields!P1.Value,"@")),"missing"),"@",""),"missing","missing @") 
+0

これは実際に動作します、感謝の仲間 –

関連する問題