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

Создание сложного макета отчета в QuickReport для Delphi 5

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

Приветствую всех, кто столкнулся с необходимостью создания сложного макета отчета в QuickReport для Delphi 5. В данной статье мы рассмотрим, как создать отчет с заданной структурой, используя только header, detail, child и footer bands.

Описание проблемы

Необходимо создать QuickReport в Delphi 5 с заданной структурой:

+================
| Report Header
+================

+=========================================
| Detail Band (auto-stretching, repeats)
|
+=========================================
    |    Child band (fixed-size)
    +======================================
    |    Child band (Auto-stretching)
    .
    +======================================
    |    Child band (fixed-size)
    +======================================

+=================================
| Report Footer (auto-stretching)
.
+=================================

+==================================
| Report Footer (auto-stretching)
.
+==================================

+=============================
| Report Footer (fixed size)
+=============================

Решение проблемы

Для создания отчета с заданной структурой можно использовать только header, detail, child и footer bands. Чтобы добиться требуемого результата, необходимо правильно настроить связи между ними.

  1. Создайте отчет и добавьте все необходимые bands (header, detail, child и footer).
  2. Настройте связи между bands:
    • Укажите, что Detail Band является родительским для всех Child bands.
    • Укажите, что первый Footer Band является родительским для второго Footer Band.
    • Укажите, что второй Footer Band является родительским для последнего Footer Band.
  3. Настройте свойства bands:
    • Установите свойство BandType Detail Band в rbDetail.
    • Установите свойство BandType Footer Band в rbFooter.
    • Установите свойство BandType первого Footer Band в rbSummary.
    • Установите свойство BandType второго Footer Band в rbSummary.
    • Установите свойство BandType последнего Footer Band в rbPageFooter.
    • Установите свойство AutoStretch для всех Child bands в True, кроме первого.
    • Установите свойство AutoStretch для первого Footer Band в True.
  4. Настройте данные для отчета:
    • Создайте Query, который возвращает данные для отчета.
    • Установите свойство Query отчета на созданный Query.
  5. Настройте макет отчета:
    • Установите необходимые свойства для каждого band (ширина, высота, выравнивание и т.д.).
    • Добавьте необходимые компоненты (labels, memo, edit и т.д.) на каждый band.
    • Настройте связи между компонентами и полями из Query.

Пример кода для настройки связи между bands:

DetailBand1.ParentBand := nil;
ChildBand1.ParentBand := DetailBand1;
ChildBand2.ParentBand := ChildBand1;
ChildBand3.ParentBand := nil;
FooterBand1.ParentBand := nil;
FooterBand2.ParentBand := FooterBand1;
FooterBand3.ParentBand := FooterBand2;

Пример отчета

В качестве примера рассмотрим отчет "Сuspicious Transaction Report", который имеет следующую структуру:

+===========================================
| Suspicious Transaction Report
|   STR No.: 12345
|      Date: 11/28/1973
|
|   Comments: as per NSL 1/13/2010
+===========================================

+===========================================
| Transaction 1 of 7
|      Buy                  Sell
|     $100.00            $16,000.00
|                        $27,000.00
|                        $12,000.00
.                            ...
+===========================================
|  Customer Information
|           Name: Shelby Lake
|        Address: 11111 S NC-HWY 111
|            DOB: 6/19/1981
|         ID No.: G123-456-789
|     Occupation: waitress
+===========================================
|  Original Transaction
|       Buy                 Sell
|      $100.00           $16,000.00
|    $3,000.00           $27,000.39
|   $64,132.69           $12,000.13
.       ...                  ...
+===========================================
|  Third Party Information
|           Name: Yugo Chavez
|        Address: 11111 S AB
|            DOB: 9/15/1934
|         ID No.: 995-1935
|     Occupation: dictator
+===========================================

...

+===========================================
| Transaction 7 of 7
.
.
+===========================================

+===========================================
| Description of Suspicious Activity
|   Customer had beedy eyes, that moved
|   rapidly from left to right. He...
.   ...
+===========================================

+===========================================
| Action Taken
|   We killed him, went through his
|   pickets, then started digging the...
. 
+===========================================

+===========================================
|
|    Signature: _______________________
|                    Bruce Wayne
|        Title: The Batman
|  Employee ID: 1337-6669
+===========================================

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

+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader)         |
+=====================================================+

+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail)             |
+===+=================================================+
    | ChildBand1 (TQRChildBnad, Parent=DetailBand)    |
    !      (autostretch)                              !
    +===+=============================================+
        | ChildBand2 (TQRChildBand, Parent=ChildBand1 |
        +=============================================+
            | ChildBand3 (TQRChildBand, Parent=ChildBand2 |
            +=============================================+
                | ChildBand4 (TQRChildBand, Parent=ChildBand3 |
                +=============================================+

+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary)           |
+=====================================================+

+=====================================================+
| FooterBand1 (TQRBand, BandType=rbFooter)            |
+=====================================================+

+=====================================================+
| FooterBand2 (TQRBand, BandType=rbFooter)            |
+=====================================================+

+=====================================================+
| FooterBand3 (TQRBand, BandType=rbFooter)            |
+=====================================================+

В данном примере Detail Band является родительским для всех Child bands, а Footer Band является родительским для FooterBand1, FooterBand2 и FooterBand3. При настройке данных для отчета необходимо создать Query, который возвращает данные для отчета и установить его как свойство Query отчета. При настройке макета отчета необходимо установить необходимые свойства для каждого band и добавить необходимые компоненты на каждый band.

Вывод

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

Создание сложного макета отчета в QuickReport для Delphi 5 с заданной структурой, используя только header, detail, child и footer bands.


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

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