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")