Try ... Except в Fastreport
Вопрос, можно ли как-то отлавливать исключительные ситуации при формировании отчёта?
У меня к примеру в отчёте заранее неизвестно какие поля вернутся из набора данных (хранимая процедура, возвращающая select из созданной в ней временной таблицы). Если указанного в отчёте поля не пришло, возникает ошибка, как мне её погасить и продолжить выполнение отчёта?
Спасибо.
У меня к примеру в отчёте заранее неизвестно какие поля вернутся из набора данных (хранимая процедура, возвращающая select из созданной в ней временной таблицы). Если указанного в отчёте поля не пришло, возникает ошибка, как мне её погасить и продолжить выполнение отчёта?
Спасибо.
Комментарии
[Report.GetColumnValue("Table.Column")]
вместо
[Table.Column]
проблема похожа, опишу подробнее. я уже жаловался на то, что у меня возникает ошибка "Превышено время ожидания" я пока не хочу ни на кого показывать пальцем. Вероятнее всего проблема далеко не в ФР. но это как бы не суть.
Проблема следующая: я выполняют отчёт, внутри отчёта есть форма, которая вызывается по гиперссылке прямо из отчёта (с поля Text в бенде заголовка), аля фильтр, в фильтре настраиваются условия фильтра, которые потом передаются в сам запрос. Всё работает на ура, скорость супер. После того как на форме нажата кнопка ОК текст запроса изменяется, и идёт команда Report.Refresh, а на таблице (в которую передается запрос) стоит ForceLoadData данные обновляются. Всё супер. Но может возникнуть ситуация когда превышено ожидание. То есть данные не получены и выскакивает 10000 ошибок, которые не закрыть.
При чем при первом старте если возникла ошибка "Превышено время ожидания" ошибка выскакивает только 1 раз и отчёт как бы закрывается. А во время refresh этого не происходит он даже после ошибки прёт.
Было бы супер, если бы просто мега упер, если бы к примеру было событие OnError или что то подобное в самом отчёте, при возникновении исключения вызывалась бы это событие, от туда эту ситуацию можно было бы разрулить. К примеру остановить выполнение запроса, или выдать сообщению пользователю, что он не прав ) и надо сделать что то по другом.
Мне кажется это не так уж и сложно... заранее спасибо
Спасибо большое, такой вариант мою задачу решает.