Я просто предположу, что правильный ответ похож на то, что упоминали другие, но не совсем.
На странице класса упоминается, что DeviceID
имеет следующее свойство:
Квалификаторы: Ключ
blockquote>Я полагаю, из-за отсутствия фактическая документация, что поиск чего-либо по их ключу возвращает саму вещь. При поиске по чему-то еще возвращается список объектов, удовлетворяющих этому условию. Даже если список содержит только 1 запись - это не сам объект, а список.
Но если бы кто-то мог предоставить какую-то документацию, это было бы неплохо.
Я бы попытался использовать ISNULL (fieldname, 0) при запросе вашего набора данных.
Если вы подключаетесь к источнику данных без оператора ISNULL (например, Oracle), попробуйте использовать COALESCE ( fieldname, 0), которые поддерживают iSeries, oracle и sql.
You could check for null in the SQL query instead of at the report level. Like IsNull(fieldname,0) then just format for the %. Provided of course your data is from SQL Server.
Выражения SSRS оцениваются с помощью Visual Basic, который обычно выполняет полную (т. Е. Не короткую) оценку всех операндов в выражении, например, в IIf (cond, truexp, falsexp), помимо cond, оцениваются как truexp, так и falsexp, и они могут выдавать независимо от значения cond.
Поскольку в VB.NET 2.0, похоже, нет функции объединения, вы можете добавить ее в раздел кода отчет, например, для Decimal, возвращенный из Oracle
Function Coalesce(fieldValue As Object, defaultValue As Decimal) As Decimal
If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then
Coalesce = defaultValue
Else
Coalesce = CDec(fieldValue)
End If
End Function
Также можно было бы определить общую функцию, например Coalesce (Of TResult).