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

Динамическое назначение DataSet в FastReport для Delphi 6

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

При работе с FastReport в Delphi 6 может возникнуть необходимость динамически назначать DataSet для MasterData и полей отчета во время выполнения, а не на этапе проектирования. В этом материале мы рассмотрим, как это сделать.

Проблема

Пользователь создал отчет в FastReport Designer и вызывает его в приложении Delphi 6. Однако, DataSet для MasterData и полей не назначены на этапе проектирования. Пользователь хочет назначить эти свойства во время выполнения, в зависимости от выбранного DataSet. Также пользователя интересует, как получить доступ к DataSet MasterData в Delphi перед вызовом предварительного просмотра/печати/редактирования отчета.

Решение

Чтобы динамически назначать DataSet в FastReport для Delphi 6, вам нужно использовать процедуру frxReport1BeforePrint. В этой процедуре вы можете получить доступ к объектам MasterData и полям отчета и назначить им DataSet. Вот пример кода:

procedure frxReport1BeforePrint(Sender: TfrxReport);
var
  t: TfrxMasterData;
  m: TfrxMemoView;
begin
  t := frxReport1.FindObject('MasterData1') as TfrxMasterData;
  if Assigned(t) then
    t.DataSet := frxIBODataset1; // назначаем DataSet для MasterData

  m := frxReport1.FindObject('mTenderType') as TfrxMemoView;
  if Assigned(m) then
  begin
    m.DataSet := frxIBODataset1; // назначаем DataSet для поля
    m.DataField := 'ACCOUNTNAME';
    m.Text := '[frxIBODataset1."ACCOUNTNAME"]';
  end;
end;

В этом примере мы получаем доступ к объекту MasterData с именем 'MasterData1' и назначаем ему DataSet frxIBODataset1. Аналогично, мы получаем доступ к полю с именем 'mTenderType' и назначаем ему DataSet frxIBODataset1, а также указываем поле 'ACCOUNTNAME', которое будет отображаться в поле.

Подтвержденный ответ

Чтобы динамически назначать DataSet в FastReport для Delphi 6, используйте процедуру frxReport1BeforePrint. В этой процедуре получите доступ к объектам MasterData и полям отчета и назначьте им DataSet. Это позволит вам назначать DataSet во время выполнения, в зависимости от выбранного DataSet.

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

Если вы используете FastReport 3+ и Delphi XE2, убедитесь, что вы размещаете компоненты базы данных внутри отчета и предоставляете подключение к базе данных, когда запускаете дизайнер отчета из вашего приложения. Вы также можете определять переменные, передавать их из приложения и запускать файл отчета .fr3.

Пример кода на Object Pascal (Delphi)

Вот пример кода на Object Pascal (Delphi), который демонстрирует, как динамически назначать DataSet в FastReport:

procedure frxReport1BeforePrint(Sender: TfrxReport);
var
  t: TfrxMasterData;
  m: TfrxMemoView;
begin
  t := frxReport1.FindObject('MasterData1') as TfrxMasterData;
  if Assigned(t) then
    t.DataSet := frxIBODataset1; // назначаем DataSet для MasterData

  m := frxReport1.FindObject('mTenderType') as TfrxMemoView;
  if Assigned(m) then
  begin
    m.DataSet := frxIBODataset1; // назначаем DataSet для поля
    m.DataField := 'ACCOUNTNAME';
    m.Text := '[frxIBODataset1."ACCOUNTNAME"]';
  end;
end;

Этот код назначает DataSet для MasterData и поля отчета во время выполнения, в зависимости от выбранного DataSet.

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

Материал описывает, как динамически назначать DataSet в отчете FastReport для Delphi 6 во время выполнения, а не на этапе проектирования, используя процедуру `frxReport1BeforePrint`.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 06:05:15/0.0032839775085449/0