Try ... Except в Fastreport

отредактировано 19:09 Раздел: FastReport .NET
Вопрос, можно ли как-то отлавливать исключительные ситуации при формировании отчёта?

У меня к примеру в отчёте заранее неизвестно какие поля вернутся из набора данных (хранимая процедура, возвращающая select из созданной в ней временной таблицы). Если указанного в отчёте поля не пришло, возникает ошибка, как мне её погасить и продолжить выполнение отчёта?

Спасибо.

Комментарии

  • отредактировано 19:09
    Так делать нельзя в принципе. Все поля, которые используются в отчете, должны присутствовать в источнике данных. Иначе они просто не будут распознаны как поля БД. Либо обращайтесь к полям следующим образом:

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

    Мне кажется это не так уж и сложно... заранее спасибо
  • отредактировано 19:09
    AlexTZ написал: »
    Так делать нельзя в принципе. Все поля, которые используются в отчете, должны присутствовать в источнике данных. Иначе они просто не будут распознаны как поля БД. Либо обращайтесь к полям следующим образом:

    [Report.GetColumnValue("Table.Column")]
    вместо
    [Table.Column]

    Спасибо большое, такой вариант мою задачу решает.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.