Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Автоматическое прерывание генерации отчета в Fast Report на основе заданных условий

Delphi , Базы данных , Отчеты

Автоматическое прерывание генерации отчета в Fast Report на основе заданных условий

При работе с компонентом Fast Report VCL для генерации отчетов может возникнуть необходимость автоматически прерывать процесс генерации отчета на основе заданных условий. Одним из способов достижения этой цели является программный вызов события нажатия кнопки "Отмена" в диалоговом окне страницы отчета.

В данной статье мы рассмотрим, как автоматически прервать генерацию отчета в Fast Report на основе заданных условий, программно вызывая событие нажатия кнопки "Отмена" в диалоговом окне страницы отчета.

Для начала давайте рассмотрим пример, в котором мы хотим автоматически прервать генерацию отчета, если некоторое условие истинно. Для этого мы будем использовать компонент DialogPage и разместим на нем две кнопки: "ОК" и "Отмена".

procedure TForm1.Button1Click(Sender: TObject);
begin
  with DialogPage1 do
  begin
    ModalResult := mrOK;
    ShowModal;
    if ModalResult = mrOK then
      // Генерация отчета
    else
      // Отмена генерации отчета
  end;
end;

В примере выше мы вызываем диалоговое окно страницы отчета и ждем, пока пользователь нажмет одну из кнопок. Если пользователь нажимает кнопку "ОК", то генерация отчета продолжается, а если он нажимает кнопку "Отмена", то генерация отчета прерывается.

Теперь давайте рассмотрим, как программно вызвать событие нажатия кнопки "Отмена" в диалоговом окне страницы отчета на основе заданных условий. Для этого мы можем использовать свойство ModalResult компонента DialogPage.

procedure TForm1.Button2Click(Sender: TObject);
begin
  if <условие> then
  begin
    DialogPage1.ModalResult := mrCancel;
    ShowModal;
    // Отмена генерации отчета
  end
  else
  begin
    DialogPage1.ModalResult := mrOK;
    ShowModal;
    // Генерация отчета
  end;
end;

В примере выше мы проверяем заданное условие. Если условие истинно, то мы программно устанавливаем свойство ModalResult компонента DialogPage в значение mrCancel, что приводит к прерыванию генерации отчета. Если условие ложно, то мы устанавливаем свойство ModalResult в значение mrOK, и генерация отчета продолжается.

Важно отметить, что программный вызов события нажатия кнопки "Отмена" не будет работать, если вы пытаетесь вызвать его из события OnShow или OnActivate компонента DialogPage. В этом случае вам необходимо использовать другой подход, например, останавливать генерацию отчета непосредственно из кода.

В качестве альтернативного ответа можно использовать процедуру OnRunDialogs компонента Fast Report, чтобы автоматически прервать генерацию отчета на основе заданных условий.

procedure TForm1.frxReport1OnRunDialogs(var Result: Boolean);
begin
  if <условие> then
  begin
    Result := False;
    Engine.StopReport;
  end;
end;

В примере выше мы проверяем заданное условие в процедуре OnRunDialogs компонента Fast Report. Если условие истинно, то мы устанавливаем переменную Result в False и останавливаем генерацию отчета с помощью метода StopReport компонента Engine. Это приводит к автоматическому прерыванию генерации отчета на основе заданных условий.

В заключение, в данной статье мы рассмотрели, как автоматически прервать генерацию отчета в Fast Report на основе заданных условий, программно вызывая событие нажатия кнопки "Отмена" в диалоговом окне страницы отчета. Мы также рассмотрели альтернативный подход, использующий процедуру OnRunDialogs компонента Fast Report.

Создано по материалам из источника по ссылке.

Контекст: Автоматическое прерывание генерации отчета в Fast Report на основе заданных условий.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Отчеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:39:02/0.0054728984832764/1