Stack overflow при просмотре отчета

AM_AM_
отредактировано 08:29 Раздел: FastReport 2.xx VCL
Обнаружил странный баг: если в системе по умочанию установлен принтер не поддерживающий формат А3, то при просмотре отчета формата А3 возникает ошибка Stack overflow (формируются ~ 10000 страниц) и программа зависает.
Может быть, у кого-то была подобная ошибка, пожалуйста, поделитесь способом укращения данного бага.

Комментарии

  • отредактировано 08:29
    10000 страниц - однако ;) )

    Скорее всего у компа просто кончается виртуальная память при таком объёме страниц. Попробуй в настройках винды увеличить размер виртуальной памяти ...
  • AM_AM_
    отредактировано 08:29
    Я может быть не совсем точно выразился, но дело в том, что формируются всего 2 страницы отчета (если поддерживается формат А3), а если нет, то прогресс показывает формирование большого кол-ва страниц и происходит переполнение с зависанием.
  • отредактировано 08:29
    Со стеком может быть ещё такой прикол - это когда у тебя переменная в словаре данных вычисляется сама из себя, т.е. что-то типа того:
    A=A+B
  • AM_AM_
    отредактировано January 2004
    Нет в отчете ни одной переменной ;)
  • отредактировано 08:29
    Скорее всего, FR при определении размера бумаги не может получить высоту листа (драйвер принтера возвращает 0). Ядро думает, что свободного места на листе не осталось, формирует следующую страницу и т.д. Решение - в настройках отчета поставить виртуальный принтер и флажок "выбирать при открытии отчета".

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

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