Пример - појас со променлива висина
За примери во оваа тема создадете клон на извештајот '241 - Фактура' кој е во програмското мени 'Стоки| Издавање| Документ | Документ (нпр. 300 - Продажба)'. Ќе работите на овој извештај.
Појас со растеглива висина
Да погледнеме пример за својствата на објектот "Текст" "SerialNo" (Сериски број) и појасот "bSerialNo".
Како што можете да видите во инспекторот за објекти, следните вредности на својствата се поставени:
За објектот "Текст" "SerialNo":
- "AutoWidth" (да му дозволите на објектот да ја прилагоди ширината според должината на текстот) на 'False'
- "StretchMode" (како објектот ја прилагодува висината според должината на текстот) на 'smActualHeight'
- "WordWrap" (префрлете го текстот во нов ред) на 'True.'
За појасот "bSerialNo":
- Растегнат (ако висината на појасот треба да се прилагоди на висината на објектите во него) на 'True'
Исто така, му е доделен настан "OnBeforePrint" со следниот скрипт:
процедура bSerialNoOnBeforePrint(Sender: TfrxComponent);
почеток
CallQRBeforeBandPrint(Sender, TfrxBand(sender).visible);
крај;
Процедурата CallQRBeforeBandPrint повикува код во програмата кој во овој случај ги прикажува сериските броеви кои припаѓаат на позицијата на фактурата. Ако нема сериски број, тој го крие.
Кријќи Објекти
Да погледнеме пример за криење на објект. Обележете го објектот "Слика на нашата компанија" и одчекорете ја својството "Видливо" во контекстното мени.
Зачувајте ги промените и погледнете ја прегледот. Ќе забележите дека не го гледате објектот во прегледот - резервираниот простор за објектот е зачуван.

 |
Не менувајте ги имената на објектите на такви извештаи бидејќи програмскиот код може да влијае на вредноста прикажана на извештајот и некои важни податоци нема да бидат прикажани. Ако не ви се потребни, само криејте ги. |
 |
Некои објекти се пропишани со закони и правни акти и не смеат да бидат избришани во законодавството во кое се потребни. |
Бришење на "Текст" објект поврзан со код
Да погледнеме пример за бришење на објект, кој е поврзан со код (но сè уште не знаеме за тоа). Избришете ја дебелата линија под текстот "Фактура". Како што ќе се покаже во следниот чекор, се вика "mTitle2". Затворете го дизајнерот и зачувајте ги промените. Затворете и прегледот на извештајот. Потоа, стартувајте го извештајот. Следната порака за грешка ќе се појави:

Затворете ја пораката и отворете го дизајнерот. Стартувајте го извештајот од дизајнерот. Ќе добиете следната слика:

Отворете го уредникот на код и "коментирајте" ја линијата
mTitle2.Width := mTitle1.CalcWidth + fKljuc.CalcWidth - 8;
Додаваме '//' на почетокот на овој ред за да стане
// mTitle2.Width := mTitle1.CalcWidth + fKljuc.CalcWidth - 8;
Другата можност во овој случај е само да се скрие објектот. Тој ќе постои на извештајот, но нема да биде прикажан.
 |
-
Ако преместиме објект на таков извештај на друг појас, мораме исто така да го преместиме соодветниот код таму. Во спротивно, извештајот може да не работи правилно.
-
Кога ќе отворите дизајн на извештајот од прозорецот за преглед на извештајот и стартувањето на извештајот од дизајнерот, резултатите може да бидат неточни.
|
Криење на Појаси
Можеме да го скриеме појасот пишувајќи ред на скрипта. За да го скриеме појасот "bTehPostopek", пишуваме ред на скрипта означен со дебел фонт. Мораме да го напишеме како последна изјава пред end; во процедура со исто име. Италијанските зборови мора да се совпаѓаат.
процедура bTehPostopekOnBeforePrint(Sender: TfrxComponent);
почеток
CallQRBeforeBandPrint(Sender, TfrxBand(sender).visible);
// bTehPostopek.visible := VarToStr(<tbIzpisPrometPoz."MSTEMPTEHPOSTOPEK">) = 'T';
bTehPostopek.visible := False; // претходниот ред е заменет со овој
крај;
Бришење на Појас поврзан со код
Да погледнеме како да го избришеме појасот "DetailFooter2", на кој е прикажана забелешката на документот. Операцијата е малку комплицирана. Пред да започнете, создадете резервна копија на извештајот и запишете го редоследот на појасите на извештајот. Добра практика е да се направи принтскрин на дизајнот на извештајот. Во нашиот случај, претходниот појас е "DetailFooter" и следниот е "bIzjavaTekst". Избришете го појасот "DetailFooter2".
 |
Ако не го избришеме појасот, туку само кодот за видливост доделен на овој појас во настанот "OnBeforePrint", во местото на забелешката на документот ќе се појави празен простор.
|
Кога ќе се стартува извештајот од дизајнерот, слична грешка се појавува како во претходните два случаи. По бришењето на скриптот:
DetailFooter2.visible := VarToStr(<qReportIzpisD."acNote">) <> '';
извештајот ќе се отвори, но податоците по него нема да бидат прикажани.
.
За повторно прикажување на податоците само кликнете на појасот "bNacinPlacI" и отворете го објектот инспектор. Поставете го името на појасот кој претходно беше по појасот кој сега го избришавме како својство "Child". Во нашиот случај, тоа е "bIzjavaTekst".

Извештајот повторно ќе прикаже податоци на крајот на извештајот како и предходно.
Прилагодени Објекти
Поради попрецизно усогласување и побрзо дизајнирање, огромното мнозинство на објекти на системските извештаи се прилагодени или на ивицата на појасот или на други објекти.
Својството кое го специфицира ова однесување на објектите во појасот е "Align". Пристапуваме до ова својство само во инспекторот за објекти кој може да биде прикажан или скриен во командата "View>Toolbars...". Својствата на вредностите се:
Вредност |
Опис |
baNone |
Објектот не е прилагоден. Ова е подразбирана вредност. |
baLeft |
Објектот е прилагоден на лево. |
baRight |
Објектот е прилагоден на десно. |
baWidth |
Објектот е прилагоден на лево и десно. |
baCenter |
Објектот е прилагоден во центарот. |
baBottom |
Објектот е прилагоден на долната страна. |
baClient |
Објектот е прилагоден преку објектот. |
 |
Пред да се преместат објектите, е советливо да се промени својството "Align" на "baNone" и да се постави на крајот на дизајнирањето ако е потребно. |
Пример на Вметнување Колона
Во табелата на извештајот, ќе го замениме вкупниот процент на попуст со попуст 1 и попуст 2. Во колоната, каде што претходната вредност беше попуст, ќе прикажеме попуст 1, а десно од него ќе вметнеме колона попуст 2. Подолу е дел од извештајот со заглавие на табелата и позиција на документот пред

и по промените.

Прво, ги обележуваме сите објекти на појасите "QRBand1" и "Detail". За да го направите тоа, држете го 'Ctrl' копчето, кликнете со глувчето на "Item" и повлечете го надесно и надолу. Потоа во инспекторот за објекти поставете ја вредноста на својството "Align" на 'baNone', така што објектите нема да бидат прилагодени на другите.
Преместете го објектот "Текст" со текстот "D%" и соодветното поле со податоци подолу малку налево. Потоа, копирајте ги и залепете ги десно од нив. Поставете го својството "Align" на објектите "Текст" "Квантитет", "Е/М" и двата објекти со текстот "D %" на 'baRight' за да бидат усогласени на десно. Објектот со текстот "Име" е усогласен на двете страни. Ова се прави со поставување на својството "Align" на 'baWidth'. Направете го истото со објектите со податоци во долниот ред.
Копираниот објект во заглавието на табелата е прикажан над линијата така што не е видлив во целост. За да го поправите ова, кликнете на ставката "SendToBack" во контекстното мени. Сега линијата ќе се нацрта над него и ќе биде видлива во целост.
Ги усогласуваме објектите со податоци хоризонтално. За да го направите тоа, обележете ги сите објекти во појасот Detail и кликнете на копчето
во алатникот за усогласување.
Променете го текстот во двата објекти во кои текстот е "D %" на "D1 %" и D2' соодветно.
Во објектите со податоци за попуст од паѓачкото мени, изберете полиња со anRebate1 податоци за попуст 1 и anRebate2 за попуст 2.
Објаснување: На пример, на сликата попустите се: попуст1 50 %, попуст2: 20 % и суперпопуст 0 %. Вкупниот попуст е помал од сумата на двата попусти бидејќи попустите не се собираат.