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

Создание двухмерного отчета в QuickReport с гаужами в строках и сайтами в столбцах

Delphi , Компоненты и Классы , TQuickReport

В данной статье мы рассмотрим вопрос создания двухмерного отчета в QuickReport, где гаужи отображаются в строках, а сайты - в столбцах. Для этого нам понадобится база данных с таблицей, содержащей три столбца: gauge, site и value.

Описание задачи

У нас есть таблица с тремя полями: gauge, site и value. Гаужи и сайты являются ключевыми полями, и обычно для одного сайта может быть несколько пар гаужа-сайта. В большинстве случаев нас интересуют отчеты для не более чем 10 сайтов. Нам нужно создать отчет, который будет выглядеть следующим образом:

           site1   site2   site3
    gauge1   34      4      45
    gauge2   45      6       5
    gauge4   34      4      45

Решение

Такие отчеты называются "таблицами сопоставления" или "кросс-таблицами". Чтобы создать подобный отчет в QuickReport, следуйте приведенным ниже шагам:

  1. Создайте новый отчет в QuickReport.
  2. Перетащите поле gauge на панель строк (Rows) и поле site на панель столбцов (Columns).
  3. Перетащите поле value на панель данных (Data).
  4. Убедитесь, что галочка "Автоматически группировать по полям" (Auto Group By Fields) на панели свойств (Properties) отчета установлена.
  5. Воспользуйтесь предварительным просмотром отчета, чтобы убедиться, что он соответствует вашим требованиям.

Приведенный ниже код демонстрирует, как создать такой отчет программным способом:

procedure TForm1.CreateCrossTabReport;
var
  QRReport: TQRReport;
  QRCrosstab: TQR Crosstab;
begin
  QRReport := TQRReport.Create(nil);
  try
    QRReport.Name := 'CrossTabReport';
    QRReport.DataSet := DataModule1.DataSet1; // Подключите свой набор данных

    QRCrosstab := TQR Crosstab.Create(QRReport);
    try
      QRCrosstab.Name := 'Crosstab1';
      QRCrosstab.RowsField := 'gauge'; // Поле гаужа для строк
      QRCrosstab.ColumnsField := 'site'; // Поле сайта для столбцов
      QRCrosstab.DataField := 'value'; // Поле значения для ячеек
      QRCrosstab.AutoGroupByFields := True; // Автоматически группировать по полям
    finally
      QRCrosstab.Free;
    end;

    QRReport.CreateReport;
  finally
    QRReport.Free;
  end;
end;

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

Если по какой-то причине вам не удается создать кросс-таблицу в QuickReport, вы можете воспользоваться альтернативным подходом. Создайте временную таблицу (memtable) с помощью, например, TMemoryData из JVCL suite, и затем распечатайте обычный отчет на основе этой таблицы.

Заключение

В данной статье мы рассмотрели, как создать двухмерный отчет в QuickReport с гаужами в строках и сайтами в столбцах. Мы узнали, что такие отчеты называются кросс-таблицами, и познакомились с двумя подходами к их созданию: с помощью QuickReport и с помощью альтернативного подхода, основанного на использовании memtable.

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

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


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

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




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


:: Главная :: TQuickReport ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:57:28/0.024439096450806/1