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

Экспорт TListView в Fast Report: решение проблем с отображением групп

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

При работе с FastReport в Delphi XE2 может возникнуть задача экспортировать содержимое TListView в отчет. При этом, если TListView разделено на группы, может возникнуть проблема с отображением этих групп в отчете. В данной статье мы рассмотрим, как решить эту проблему и отобразить группы в отчете в виде заголовков или мастер-данных.

Используя frxUserDataSet, можно экспортировать столбцы данных TListView в отчет. Однако, если TListView имеет группы, то отображение этих групп в отчете может вызвать затруднения. При использовании мастер-детализация, группы отображаются только один раз для набора данных.

Для отображения групп в отчете можно воспользоваться следующими способами:

  1. Создание группы заголовка/подвала в отчете на поле группы в frxUserDataSet. Это наиболее точно воспроизводит отображение в TListView и соответствует ожиданиям пользователей.
  2. Использование отдельного UserDataSet для групп, связанного с мастер-данными. Это позволяет повторять группы, но не связывает детали группы с мастер-группой.

Решением проблемы может служить демо-пример, находящийся в папке FastReports/Demos. Демонстрирует построение многоуровневых отчетов с использованием User Data Sets. Однако, этот пример не упоминается в документации по frxUserDataSets.

Пример кода на Object Pascal (Delphi) для отображения групп в отчете:

procedure TForm1.Button1Click(Sender: TObject);
var
  LView: TListView;
  UDS: TFastReport.UserDataSet;
  GroupField: TFastReport.Field;
begin
  LView := TListView.Create(nil);
  LView.Items.Add('Group 1');
  LView.Items.Add('Item 1');
  LView.Items.Add('Item 2');
  LView.Items.Add('Group 2');
  LView.Items.Add('Item 3');
  LView.Items.Add('Item 4');

  UDS := TFastReport.UserDataSet.Create(nil);
  UDS.CreateDataSet;
  UDS.CreateFieldDef('Group', ftString, 50);
  UDS.CreateFieldDef('Item', ftString, 50);
  UDS.Append;
  UDS.FieldByName('Group').AsString := 'Group 1';
  UDS.FieldByName('Item').AsString := 'Item 1';
  UDS.Post;

  // Repeat the code for other items and groups

  GroupField := UDS.CreateField('Group');
  GroupField.GroupHeader := True;
  GroupField.GroupFooter := True;

  // Create and add the report to the FastReport document

  // Print the report
end;

В коде создается TListView с группами и элементами. subsequently, создается UserDataSet с полями "Group" и "Item". Далее, для поля "Group" устанавливаются свойства GroupHeader и GroupFooter, что позволяет отображать группы в отчете в виде заголовков.

Важно отметить, что для правильного отображения групп в отчете, необходимо правильно заполнить UserDataSet данными из TListView. Кроме того, при использовании мастер-детализации, группы отображаются только один раз для набора данных, поэтому для отображения всех групп в отчете, может потребоваться использовать несколько UserDataSet.

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

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

Статья о решении проблемы отображения групп TListView в отчете Fast Report при экспорте данных из Delphi XE2.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 22:44:32/0.003432035446167/0