Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

QRBand - полоса отчета

CuBook35

Полоса отчета (компонент QRBand) является основной составной частью (элементом) отчета, на которой размещаются другие его компоненты.
 
Тип полосы определяется свойством BandType типа TQRBandType, которое может принимать следующие значения:
  • rbTitle - заголовок отчета (печатается в начале отчета под верхним колонтитулом);
  • rbPageHeader - верхний колонтитул, который печатается сверху на каждой странице, в том числе на первой, если включен (по умолчанию) параметр FirstPageFooter свойства Options компонента отчета; если этот параметр выключен, то верхний колонтитул на первом листе не печатается;
  • rbDetail - данные записей набора данных; выводятся для каждой записи набора данных;
  • rbPageFooter - нижний колонтитул, который печатается внизу на каждой странице, в том числе на последней, если включен (по умолчанию) параметр LastPageFooter свойства Options компонента отчета; если этот параметр выключен, то нижний колонтитул на последней странице не печатается;
  • rbSummary - итог отчета; выводится в конце отчета под всеми другими сведениями отчета, но выше нижнего колонтитула;
  • rbGroupHeader - заголовок группы, который выводится для каждой группы;
  • rbGroupFooter - примечание группы, которое выводится для каждой группы; может использоваться в качестве нижнего, колонтитула для полосы TQRSubDe tail;
  • rbSubDetail - данные подчиненного набора данных для отчета "главный-подчиненный";
  • rbColumnHeader - заголовки столбцов, печатаемые один раз на каждой странице над данными;
  • rbOverlay - служит для совместимости с генератором отчетов предыдущей версии;
  • rbChild - дочерняя полоса, печатаемая после полосы, с которой она связана.
При установке типа полосы она автоматически размещается на своем месте в отчете и выравнивается по ширине страницы отчета с учетом левого и правого полей. Разработчик не имеет возможности переместить полосу на другое место с помощью мыши. Изменить ширину полосы можно косвенно, изменяя размеры страницы и полей. Высота полосы меняется путем передвижения мышью верхней или нижней рамки полосы или через установку значения свойства Height в Инспекторе объектов.
 
Добавить новую полосу к отчету можно двумя способами:
  • поместить компонент QRBand в отчет и присвоить требуемое значение свойству BandType;
  • установить значение true соответствующему подсвойству свойства Bands компонента QuickRep, при этом к отчету добавляется полоса, а ее свойству BandType автоматически устанавливается нужное значение.
При создании отчета в него нужно включать не более одной полосы каждого вида, так как при печати отчета "лишние" полосы одного и того же вида учитываться не будут. Например, если в отчет включены две полосы заголовка отчета (rbTitle), то ошибки компиляции не возникает, но в качестве заголовка используется первая из этих полос. Полосы определенного вида, например, полоса rbDetail, при формировании отчета создаются автоматически для каждой записи набора данных.
 
При печати отчета полосы выводятся на странице целиком и не переносятся. Если, например, итоговая полоса rbSummary содержит много данных, то велика вероятность того, что она будет перенесена на следующую страницу, а на предыдущей странице может остаться достаточно много свободного места. Каждая полоса может иметь отдельную рамку, которой управляет свойство Frame, не отличающееся от аналогичного свойства компонента отчета QuickRep.
 
При печати каждой полосы генерируются события BeforePrint типа TQRBeforePrintEvent и AfterPrint типа TQRAfterPrintEvent. Событие BeforePrint генерируется непосредственно перед печатью полосы, и его можно использовать для блокирования печати. Тип этого события описан как:
type TQRBandBeforePrintEvent = procedure (Sender: TQRCustomBand; var PrintBand: Boolean)
Параметр PrintBand определяет, печатать ли полосу. Если вывод полосы нежелателен, то параметру следует присвоить значение false. Обычно обработчик события BeforePrint кодируется для полос данных, когда выполняется проверка данных полей текущей записи, и решение о печати полосы принимается в зависимости от выполнения определенных условий.
 
В процессе выполнения приложения при вызове метода Preview также генерируются события BeforePrint и AfterPrint.
 
Приведем пример обработчика, в котором осуществляется управление печатью полосы:
void __fastcall TForm2::DetailBandlBeforePrint(TQRCustomBand *Sender, bool &PrintBand)
{
PrintBand = Form1->Table1->FieldByName("Year")->AsInteger == 2002;
}
В отчете печатаются или отображаются при предварительном просмотре записи, имеющие в поле Year значение 2002. Для рассмотренного примера отчета с данными о книгах это означает печать или отображение данных только о книгах 2002 г. выпуска.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий