Обработка ошибок?

отредактировано 13:57 Раздел: FastReport 3.0
Доброго времени!

FR3.03 Идея такая: нужно вывести значение переменной, либо запись об отсутствии такой переменной. Делаю так:
procedure Memo10OnBeforePrint(Sender: TfrxComponent);
var
  str: string; 
begin
   ...
   str := имя_переменной;
   try
     str := Get(str);
   except
      str := 'не определено';
   end;
   Memo10.Memo.Add(str);
end;

под отладчиком отчет строится, но после построения выдается сообщения, что часть переменныех не найдена. Если же запескать отчет из программы, то вылетает сообщение, что те же переменные не найдеты и отчет вообще не отображается. Но это и понятно, т.к. для постоения отчета использую:
 if frxReport.PrepareReport then
      DMReports3.frxReport.ShowPreparedReport
  else
    ShowMessage('Ошибка при построении отчета');

Установка frxReport.EngineOptions.Silent = true не помогает.

Посоветуйте как обойти. Зарание спасибо.

Комментарии

  • отредактировано 13:57
    Кроме правки исходников, не поможет ничего.
  • отредактировано 13:57
    если не секрет: планируется ли такая правка исходников?

    Была шальная мысль сделать нечто вроде:

    ...
     str := имя_переменной;
      if Report.Variables.IndexOf(str) = -1 then
         str := 'не определена'
      else
         str := Get(str);
    

    но я не могу достучатся до Variables в скрипте. как быть?

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

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