Reporting Services SQL 2005, если проверка на пустой указатель

Я просто предположу, что правильный ответ похож на то, что упоминали другие, но не совсем.

На странице класса упоминается, что DeviceID имеет следующее свойство:

Квалификаторы: Ключ

blockquote>

Я полагаю, из-за отсутствия фактическая документация, что поиск чего-либо по их ключу возвращает саму вещь. При поиске по чему-то еще возвращается список объектов, удовлетворяющих этому условию. Даже если список содержит только 1 запись - это не сам объект, а список.

Но если бы кто-то мог предоставить какую-то документацию, это было бы неплохо.

5
задан Joel Coehoorn 5 June 2009 в 16:50
поделиться

4 ответа

Я бы попытался использовать ISNULL (fieldname, 0) при запросе вашего набора данных.

Если вы подключаетесь к источнику данных без оператора ISNULL (например, Oracle), попробуйте использовать COALESCE ( fieldname, 0), которые поддерживают iSeries, oracle и sql.

3
ответ дан 13 December 2019 в 22:16
поделиться

Try using IsDBNull

2
ответ дан 13 December 2019 в 22:16
поделиться

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.

1
ответ дан 13 December 2019 в 22:16
поделиться

Выражения 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).

4
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: