Тип результата итоговой функции в CrossTab

Обсуждение Stimulsoft Reports.Net
Ответить
dsrozhko
Сообщения: 15
Зарегистрирован: 20 апр 2018, 09:59

Тип результата итоговой функции в CrossTab

Сообщение dsrozhko » 06 сен 2018, 14:38

Добрый вечер!

В источнике данных имеется колонка с типом значений double, в которой значения находятся между -1.79769313486232E+308 и 1.79769313486232E+308 (минимальным и максимальным возможным значением для типа double ответственно). При предварительном просмотре приложение выдаёт исключение, текст которого прикреплён к данному сообщению.

Насколько я правильно понимаю - данная ситуация возникает из-за того, что CrossTab использует функции для расчёта итогов, которые по умолчанию возвращают тип Decimal. Исходя из документации (Итоги связанные с бэндами -> https://www.stimulsoft.com/documentatio ... _bands.htm) я так понимаю - существует возможность для других бэндов изменить тип возвращаемого значения итоговой функции на Double или Int64. Существует ли данная возможность для CrossTab?
Вложения
Exception.txt
(3.26 КБ) 234 скачивания
Ivan
Сообщения: 613
Зарегистрирован: 10 авг 2006, 01:40

Re: Тип результата итоговой функции в CrossTab

Сообщение Ivan » 11 сен 2018, 10:26

Здравствуйте.

На данный момент в коде CrossTab жестко прописано, что все числовые значения для рассчётов преобразуются в Decimal.
Это связано с известной проблемой округления double-типа. Например 0.27 + 0.31 = 0.58000000000000007
Тип Decimal является более точным, поэтому и используется у нас в большинстве случаев по умолчанию.
К сожалению, в CrossTab изменить это на данный момент нельзя.

Спасибо.
Ответить