0

私が使っているのですが、表現にSwitch明確なセクションがないようですELSEので、次のようになりましたが、少しハックのように感じます-そうですか?

それは機能します-それがどちらかであるか、または他の製品文字列がそのまま残されている場合、文字列を修正するという点foobar

=Switch(Fields!Product.Value = "foo" , "foo (incl sad)", 
       Fields!Product.Value = "bar", "bar (incl sick)",
       Cdbl(1)=Cdbl(1), Fields!Product.Value)
4

3 に答える 3

2

それが機能する場合、それは機能します。IIF(Fields!Product.Value = "foo"、 "foo2"、IIF(Fields!Product.Value = "bar"、 "bar2"、Fields!Product.Value)を使用することもできます

于 2012-10-15T16:07:08.707 に答える
0

スイッチを使用できます=IIF(...)。MSDNから使用できる他の方法は次のとおりです。

Iif関数は、式がtrueであるかどうかに応じて、2つの値のいずれかを返します。次の式は、Iif関数を使用して、LineTotalの値が100を超える場合はTrueのブール値を返します。それ以外の場合はFalseを返します。

他の式には別の式を含めることができるIIFため、単一の式に限定されませんIIF。すべてのRS式はここにあります:

http://msdn.microsoft.com/en-us/library/ms157328.aspx

于 2012-10-15T15:45:55.933 に答える
0

誰かがそれを要求したので:

=Switch(Fields!Product.Value = "foo" , "foo (incl sad)",  
        Fields!Product.Value = "bar", "bar (incl sick)", 
        Cdbl(1)=Cdbl(1), Fields!Product.Value) 

になります

=Switch(Fields!Product.Value = "foo" , "foo (incl sad)",  
        Fields!Product.Value = "bar", "bar (incl sick)", 
        true, Fields!Product.Value) 

どちらが読みやすいと思いますか?理解できます1 = 1が、元のコードでのdoubleへのキャストが何であるかについて誰かに教えてもらえますか?

私の知る限り、これがswitchステートメントから「else」を返す唯一の方法です。それ以外の場合は、null / Nothingが返されます(それぞれc#/ VBの達人の場合)。

于 2012-10-16T08:16:48.930 に答える