Обработка исключения «Деление на ноль» в FastReport.NET

05.11.2018

Среди обновлений в FastReport 2018.4 было решение ошибки деления на ноль. Раньше, разработчкам отчетов приходилось самостоятельно обрабатывать это исключение. Ведь мы не можем гарантировать, что из-за данных не произойдет этой ошибки. Если вы не сделали обработку деления на ноль, то получите исключение, которое прервет построение отчета. В итоге вам все равно придется дорабатывать отчет, а это дополнительные затраты времени.

Теперь, вам не нужно думать об этой проблеме, в том выражении, где произошла ошибка деления на ноль, будет показано сообщение Division by zero. При этом отчет построится. Давайте сравним что было и что стало при делении на ноль.

Добавим в отчет текстовое поле и впишем такое выражение: [2018/0]. Это два целых числа.

Что было в предыдущих версиях FastReport .NET. При попытке запустить отчет в дизайнере:

 

При запуске отчета из пользовательского приложения:

 

Как стало:

 

Отчет построился, но поле с ошибкой подсвечено красным фоном, заменено текстом DIVISION BY ZERO!

Это работает на целочисленных значениях. А что, если делить на ноль числа с запятой? Например, такое выражение [2018.0/0.0] даст результат:

 

 Это работает и в предыдущей версии и в новой.

Таким образом, встроенная обработка деления на ноль избавила нас от «головной боли» - писать собственные обработчики в скрипте отчета. А значит, разработка отчетов стала еще проще и удобнее.

1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.
28 октября 2024

Как настроить WSL 2 для работы с FastReport и FastCube

В этой статье попробуем вместе разобраться, как настроить WSL 2 для работы с компонентами FastReport и FastCube в Lazarus для Linux.