Я пытаюсь использовать пользовательскую функцию для определения значения для индикатора. Проблема в том, что поля, переданные функции, могут быть NULL. Я сделал тип параметра nullable, но тогда он не позволит мне делать какие-либо сравнения. Я не знаю, почему.SSRS Пользовательские функции и значения Null
Ошибка: «В строке 20 пользовательского кода есть ошибка: [BC30452] Оператор« < »не определен для типов« System.Nullable (Of Single) »и« System.Nullable (Of Single) ». «.
Public Function GetIndicator(ByVal HistBal As Nullable(of single),ByVal CurBal as NULLABLE(of single)) as integer
Dim iReturn as integer
if NOT HistBal.HasValue Then
iReturn =0
else If HistBal< CurBal then
If (HistBal-CurBal)/HistBal <-.1 Then
iReturn= 2 'Green arrow
Else
iReturn= 4 'Up yellow
end if
Else if HistBal=CurBal then
iReturn=0 'blank
else
If (HistBal-CurBal)/HistBal <.1 Then
iReturn= 3 'Dn yellow
Else
iReturn= 1 'red arrow
end if
End if
return iReturn
End Function
UPDATE:
Код, который возвращает #ERROR:
Public Function GetIndicator(ByVal HistBal As Nullable(of single),ByVal CurBal as NULLABLE(of single)) as integer
Dim iReturn as integer
if Not HistBal.HasValue or Not CurBal.HasValue Then
iReturn =0
else
iReturn= 1
End if
return iReturn
End Function
Спасибо. Никогда не использовал этот параметр Nullable. – user1612851
Он компилируется, но я получаю #Error обратно из функции. Функция работала до того, как я сделал ее нулевым параметром. – user1612851
Прогресс! Это '# Ошибка' - это другая проблема, связанная с другим кодом. Я не знаю, что вы сделали, или какой вклад вы даете. В настоящее время ваш код не проверяет значение 'CurBal.HasValue', если оно равно null, оно генерирует исключение и возвращает ошибку. –