ПредишенСледващото

процедура TForm1.Button1Click (Sender: TObject);
започвам
QuickRep1.Preview;
приключи;

процедура TForm1.Button1Click (Sender: TObject);
започвам
QuickRep1.Print;
приключи;

На този етап трябва да се направят няколко забележки. Този тест програма TQuickRep компонент се намира на основната форма, и, както можете да видите, че не изглежда много добре. В една реална програма, никога няма да покаже формата, съдържаща TQuickRep. Вместо да го използвате с различен начин.
За да направите това например е подобна на настоящата жалба, на няколко стъпки:

процедура TForm2.Button1Click (Sender: TObject);
започвам
Form1.QuickRep1.Preview;
приключи;

Процедура TForm1.QRCompositeReport1AddReports (
Подателя: TObject);
започвам
QRCompositeReport1.Reports.Add (RepNewCust.Report);
QRCompositeReport1.Reports.Add (RepOrderSummary.Report);
QRCompositeReport1.Reports.Add (RepStockReorder.Report);
приключи;

(Ако не презират помощта на с изявление в кода си, а след това можете да напишете това
с QRCompositeReport1.Reports направя
започвам
.
приключи;

За да използвате текст или CSV филтрите по този начин, да се използва една и съща ExportToFilter поканата, но изберете подходящия филтър или като TQRAsciiExportFilter TQRCommaSeparatedFilter.

Инспектор Предметът показва дали дадена група или не, както и да добавяте или премахвате всеки раздел, като просто да се подбере подходящата имота. Групи, създадени по този начин имат имена, които описват тяхната функция: DetailBand1, PageHeaderBand1 т.н. BandType имот се настройва автоматично.
Въпреки че е възможно да се добави секции и инсталирате ръчно BandType в rbSubDetail или rbGroupHeader, но това не се препоръчва. Тези секции са предназначени за използване само с TQRSubDetail и TQRGroup компоненти. Използването им къде другаде може да даде непредсказуеми резултати.
Можете също така да добавите секция, като изберете компоненти от палитрата TQRBand и поставянето им в доклада. Имайте предвид, че в този случай трябва да се направи, за да се тревожи за определяне на свойствата BandType, и вие също трябва да се даде името на съответния раздел. Имоти TQuickRep контейнерни ленти превръщат автоматично да се отрази на секциите, добавени към доклада по този начин.
Ето списък на прости секции, които можете да добавите към вашия доклад:
тип Band Предназначение
раздел първа страница Header обикновено се отпечатва на всяка страница. Печат на първа страница се определя от Options.FirstPageHeader собственост. Стойността по подразбиране е отпечатана на първа страница.
Заглавие раздел заглавие - първата част, която е отпечатана в доклада (след първата заглавната страница, ако има такива). Често се използва за отпечатване на корица на доклада, критерии за подбор на данни, датата и часа на създаване, и т.н.
Колона заглавия на раздели Header, отпечатани в началото на всяка страница доклад. След заглавието на страницата (след заглавието на първата страница). Докладът на мулти колона. отпечатан за всяка колона. Често се използва за отпечатване на имената на полетата.
раздел Подробности за отпечатване на всеки запис (ред) на вашия набор от данни. Това със сигурност е най-важната част в доклада и което заема основно място в своя отчет. Трябва да се сложи следящи данните за печат компоненти като TQRDBText тази секция.
Обобщение След отпечатване на всички раздели на детайли, можете да отпечатате общи стойности на в този раздел.
Последна точка Page Footer на всяка страница. Отпечатване на последната страница се определя от Options.LastPageFooter собственост.

След като се добави нов раздел в доклада, можете да видите как те са разположени в самия печат. Вие виждате, че заглавна страница се предлага за следващия си раздел заглавие, заглавието на колоната, и така нататък.

Вид на всеки раздел, отпечатан с малки букви в долния ляв ъгъл. Това ви позволява да ги идентифицира в доклада. Този текст не попада в окончателния доклад.
Раздел на компонента се появява в доклада TQuickRep показва в реда, в който са отпечатани. Той помага да се разбере как тя ще бъде отпечатана. Най-честата употреба на секцията е показано на фигура 10, но нещата се усложняват, когато започнете да пишете подсекция и grupirovavat.
Размери на секции
Раздел извлече хоризонтална техния размер на TQuickRep компоненти. Техните Size.Width свойства трябва да се използват само като само за четене; Опитайте се да пишете в тях други стойности се игнорират. За доклад в една колона, ширините на всички секции е настроен на страница ширина минус лявата и дясната граници на. По време на многоколонна ширини доклад (Колона Header, Подробности, Sub Подробности, Група Header и Footer Group) се адаптира към наличната широчина отделна колона
Въпреки това, можете да промените размера по вертикала на секцията. Търсене секция и преоразмеряване с помощта на мишката или чрез промяна на свойствата Size.Height.
Включване и изключване на секции
Понякога не искате да забраните отпечатването на определени граници. Това може да стане или по време на проектиране или изпълнение на време, подготвяйки TQRBand.Enabled имота False.
В момента на генериране на отчети, можете да забраните временно раздел печат в събитието манипулатор BeforePrint. Този манипулатор има параметър PrintBand, които можете да зададете на False, за да забраните печат - но само за известно време. Тази функция е много удобна за организиране на обикновен филтър:

процедура TrepCusList.RepDetailBeforePrint
(Подателя: TQRCustomBand;
Var PrintBand: булеви);
започвам
PrintBand: = CustTableTotalSales> 3000000;
приключи;


Забележка: Когато PrintBand ЛЪЖА раздел детайл, стойностите за даден запис, не са включени в изчисляването на обобщаващи функции TQRExr като функция SUM. Това поведение се различава между версии QuickReport QuickReport 2 и 3.
Ако изключите раздела на Page Footer, резултатът ще бъде появата на празно пространство в долната част на всяка страница - раздел Подробности не използва това пространство, QuickReport не проверява размера на страницата всеки път. Така че, ако се промени Enabled собственост на Page Footer, а след това да се извика методът ResetPageFooterSize за актуализиране на информацията.

// използвате QRPrntr да получите TQRPreviewInterface

TQRCustomPreviewInterface = клас (TQRPreviewInterface)
обществен
функция Show (AQRPrinter. TQRPrinter)
. TWinControl; отменят;
функционира ShowModal (AQRPrinter. TQRPrinter)
. TWinControl; отменят;
приключи;

функция TQRCustomPreviewInterface.Show (
AQRPrinter: TQRPrinter): TWinControl;
Var
FRM. TCustPreview;
започвам
FRM: = TCustPreview.Create (заявка, AQRPrinter);
frm.Show;
Резултат: = FRM;
приключи;

функционира TQRCustomPreviewInterface.ShowModal (
AQRPrinter: TQRPrinter): TWinControl;
Var
FRM. TCustPreview;
започвам
FRM: = TCustPreview.Create (заявка, AQRPrinter);
frm.ShowModal;
Резултат: = FRM;
приключи;

# 123; $ Предупреждения OFF # 125;
TCustPreview = клас (TForm)
QRPreview1: TQRPreview;
процедура CustPreviewClose (Sender: TObject;
Var действие: TCloseAction);
частен

fQRPrinter. TQRPrinter;
обществен

конструктор Създаване (AOwner TComponent .;
AQRPrinter. TQRPrinter); виртуален;
приключи;
# 123; $ предупреждения върху # 125;

конструктор TCustPreview.Create (AOwner: TComponent;
AQRPrinter: TQRPrinter);
започвам
наследил Създаване (AOwner);
fQRPrinter: = AQRPrinter;
QRPreview1.QRPrinter: = AQRPrinter;
приключи;

процедура TCustPreview.CustPreviewClose (Sender: TObject;
Var действие: TCloseAction);
започвам
fQRPrinter.ClosePreview (самостоятелно);
Действие: = caFree;
приключи;

Забележка от Вит: съкратен

Подкрепете проекта - споделете линка, благодаря!