frxReport.OnPrintReport

отредактировано 13:30 Раздел: FastReport 3.0
Приветствую!
Просьба изменить в будущих версиях метод function TfrxPreviewPages.Print: Boolean в файле frxPreviewPages.pas
Было:
 if Assigned(Report.OnPrintReport) then
    Report.OnPrintReport(Report);

  if Report.Preview <> nil then
    Report.Preview.Lock;
  pgList := TStringList.Create;
  try
    frxParsePageNumbers(PageNumbers, pgList, Count);
    DoPrint;
  finally
    pgList.Free;
  end;
Стало:
 if Report.Preview <> nil then
    Report.Preview.Lock;
  pgList := TStringList.Create;
  try
    frxParsePageNumbers(PageNumbers, pgList, Count);
    DoPrint;
  finally
    pgList.Free;
  end;

  if Assigned(Report.OnPrintReport) then
    Report.OnPrintReport(Report);
Т.е. чтобы обработчик события вызывался после отправки самого отчета на печать?
Объясню зачем это надо. Есть программа в которой непрерывно вводят документы и печатают их после ввода. После отправки на печать нужно вывести запрос "Начать ввод нового документа?" и, в случае положительного ответа, закрыть Preview (ну и перейти к новому документу). При такое реализации как сейчас приходится в OnPrintReport выставлять "флаг" и закрывать Preview в обработчике OnEndProgress при завершении формирования задания на печать.
Очень надеюсь, что в последующих версиях не придется править исходники вручную... ;)

PS. FR3 Pro 3.06

Комментарии

  • отредактировано 13:30
    Тогда уж лучше добавить событие OnAfterPrintReport.
    Ты ведь не один пользуешся этим событием.
  • отредактировано 13:30
    написал:
    Тогда уж лучше добавить событие OnAfterPrintReport.
    Согласен. Так, пожалуй, было бы даже лучше.
    написал:
    Ты ведь не один пользуешся этим событием.
    Ну человеку свойственно быть эгоистичным. ;)

    2 Markus
    А можно пример использования OnBeforePrintReport (в двух словах без текста программы) функциональность которого нарушится если событие генерить после печати? Просто в целях повышения самообразованности, а то сам не могу такого придумать...
  • отредактировано 13:30
    написал:
    А можно пример использования OnBeforePrintReport (в двух словах без текста программы) функциональность которого нарушится если событие генерить после печати? Просто в целях повышения самообразованности, а то сам не могу такого придумать...
    Задать программно настройки печати без вызова диалога.
  • отредактировано 13:30
    написал:
    Задать программно настройки печати без вызова диалога.
    И то правда. Пошел еще 128Мб фантазии себе покупать. ;)

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

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