2013-10-07 15 views

Odpowiedz

39
=iif(isNothing(Fields!FV1.Value), Fields!FV2.Value, Fields!FV1.Value) 
+0

Dzięki za pomoc –

+0

Tak - powyżej był bardzo pomocny. Wielkie dzięki L –

27

Jeśli musisz zrobić to kilka razy, możesz również użyć funkcji wielokrotnego użytku, aby uniknąć pisania. Oto rozwiązanie wzorowane off SQL's ISNULL funkcji:

  1. prawym przyciskiem myszy na dokument Zgłoś i przejdź do Zgłoś Właściwości.

    Report Properties

  2. Przejdź do zakładki kod i dodaj następującą funkcję:

    Public Function IsNull(input As Object, defaultValue As Object) As Object 
        Return IIf(input Is Nothing, defaultValue, input) 
    End Function 
    

    Code
    Uwaga - Choć niestandardowy kod spodziewa prawidłowy kod VB.NET, ty have to use the IIF Ternary operator.

  3. Wtedy można go użyć w wyrażeniu tak:

    =Code.IsNull(Fields!MyField.Value,0) 
    

    Expression

+1

Chociaż obie odpowiedzi są poprawne, bardzo podoba mi się możliwość ponownego wykorzystania tego rozwiązania. Zwłaszcza jeśli masz złożone wyrażenie, w którym agregujesz pole. W tym przypadku jest to rozwiązanie znacznie bardziej czytelne i wielokrotnego użytku. –

+2

3 lata po - ale okazało się, że jest to bardzo przydatne. – MISNole

Powiązane problemy