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

"Создание события 'After Print' для полосы данных в FastReport с помощью Delphi"

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

Создание события "After Print" для полосы данных в FastReport с помощью Delphi

При работе с FastReport в Delphi может возникнуть необходимость обработать событие "After Print" для полосы данных (MasterData Band). По умолчанию, для этого можно использовать Pascal-скрипт, но иногда требуется обработать это событие непосредственно в основном форме Delphi. В этой статье мы рассмотрим, как это сделать.

Проблема

У вас есть полоса данных (MasterData Band) в вашем отчете FastReport, и вы хотите обработать событие "After Print" в основном форме Delphi, а не в Pascal-скрипте.

Решение

FastReport предоставляет несколько вариантов для обработки событий отчета во время печати. Один из них - использовать события "AfterPrint" и/или "BeforePrint", которые будут вызываться каждый раз, когда компонент будет печататься, передавая компонент в качестве параметра. Если вам нужно получить доступ к другому компоненту, чем тот, который передается в событиях, вы можете использовать FindComponent, чтобы получить компонент для текущей страницы, которая печатается. Чтобы получить доступ к функциям внутри отчета, вы можете вызвать "Calc" с именем функции в качестве параметра. Еще один вариант - использовать событие "GetValue", которое будет вызываться каждый раз, когда переменная оценивается, передавая имя переменной и переменную для значения, что позволяет вам вернуть любое значение, которое вам нужно.

Давайте рассмотрим пример кода, который демонстрирует, как обработать событие "AfterPrint" для полосы данных в основном форме Delphi:

procedure TFormOrDM.frxReport1AfterPrint(Sender: TfrxReportComponent);
begin
  // Если Sender - это TfrxMasterdata, то // Фильтрует все Masterdatasets
  if Sender.Name = 'Masterdata1' then // Фильтрует определенную Masterdatasets
  begin
    TFrxMemoView(frxReport1.FindComponent('Sup_Page')).Text := 'Контент на странице ' + FloatToStr(frxReport1.Calc('<Page>') + 1);
  end;
end;

В этом примере мы обрабатываем событие "AfterPrint" для отчета frxReport1. Если Sender (компонент, который был напечатан) - это Masterdata1 (определенная полоса данных), мы получаем доступ к компоненту Sup_Page на текущей странице и устанавливаем его текст равным "Контент на странице" и текущему номеру страницы (полученному с помощью Calc('') + 1).

Альтернативный ответ

Если вы хотите использовать собственную функцию Delphi в FastReport 4, вы можете сделать это, объявив функцию в основном форме Delphi и использовав ее в отчете с помощью синтаксиса {DelphiFunction(Параметры)}. Например:

function TFormOrDM.MyDelphiFunction(Param1, Param2: string): string;
begin
  Result := 'Результат: ' + Param1 + ', ' + Param2;
end;

В отчете вы можете использовать эту функцию следующим образом:

{MyDelphiFunction('Параметр 1', 'Параметр 2')}

Заключение

В этой статье мы рассмотрели, как обработать событие "After Print" для полосы данных в FastReport с помощью Delphi. Используя события "AfterPrint" и "BeforePrint", а также методы FindComponent и Calc, вы можете эффективно работать с компонентами и функциями отчета во время печати. Кроме того, мы рассмотрели альтернативный способ использования собственных функций Delphi в FastReport.

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

Описание: Статья описывает, как обработать событие "After Print" для полосы данных в FastReport с помощью Delphi, не используя Pascal-скрипт, а обрабатывая это событие непосредственно в основном форме Delphi.


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

Получайте свежие новости и обновления по 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:35:45/0.0056421756744385/1