Visual Studio ReportViewer Sum не работает с десятичными полями

У меня есть простой отчет в Reportviewer с 2 флажками в нижнем колонтитуле, который должен отображать сумму. Однако сумма должна быть условной:
Только если поле "Проверено" имеет значение true, тогда значение должно быть включено в сумму.

Для первого поля это работает без проблем, но для второго поля я получаю #error в отчете.

Первое поле является целочисленным, второе - десятичным. Вот выражение, которое я использую в свойстве value обоих текстовых полей:

=Sum(IIf(Fields!Checked.Value, Fields!TotaalBedrag.Value, 0), "DataSet1")
=Sum(IIf(Fields!Checked.Value, Fields!TotaalAantalKM.Value, 0), "DataSet1")

Поле Проверено является логическим и не нулевым
Поле TotaalBedrag является целым и не нулевым
поле TotaalAantalKM является десятичным и не нулевым

сумма верна для поля TotaalBedrag, но сумма для поля TotaalAantalKM возвращает #error

Если я напишу

=Sum(Fields!TotaalAantalKM.Value, "DataSet1") 

чем я получаю правильную сумму, поэтому я думаю, что в этом поле нет ничего плохого. Единственное различие между двумя полями состоит в том, что одно из них является целым, а другое - десятичным. Могу ли я сделать что-то особенное для десятичных полей?

2 ответа

Решение

Тип данных столбца 'TotaalAantalKM' - десятичный, поэтому необходимо либо преобразовать значение по умолчанию в 0,00, либо привести столбец к двойному

=SUM(IIF (Fields!Checked.Value, CDbl(Fields!TotaalAantalKM.Value),0,00))

Для десятичных значений вы должны использовать "0D" вместо "0". Таким образом, ваше выражение станет:

=Sum(IIf(Fields!Checked.Value, Fields!TotaalAantalKM.Value, 0D), "DataSet1")
Другие вопросы по тегам