Погледнете ги упатствата за PANTHEON™

 Категории
 Главна страна - Добре дојдовте во помош за PANTHEON
[Collapse]PANTHEON
 [Collapse]PANTHEON упатства
  [Expand]Водич за PANTHEON Farming
  [Collapse]Водич за Datalab PANTHEON™
   [Expand]Помош
   [Expand]ПОС
   [Collapse]Подесувања
    [Expand]Партнери
    [Expand]Иденти
    [Expand]Производство
    [Expand]ПОС
    [Expand]Вработени
     Календар
    [Expand]Сметководство
    [Expand]Царина
    [Collapse]Програм
     [Expand]Програма за доверба
     [Expand]Видови документи
     [Collapse]Облици на испис
       Поставки во Администраторска конзола
       Изоз на испис
       Узоз на испис
       Кратенка за испис
      [Expand]Облици на испис
       Клонирање исписи и менување тип на исписи
       Преглед на испис
      [Expand]Користење SQLEXP израз во исписи
      [Expand]Дизајнер на извештаи
      [Expand]Пораки поврзани со исписи
      [Expand]Создавање Извештаи
      [Expand]Групи и Агрегати
      [Expand]Креирање исписи
      [Expand]Форматирање и Истакнување
       Вгнездени Извештаи (Подизвештаи)
      [Expand]Спецификации на печатите во ПАНТЕОН
      [Collapse]Скрипт
        "Здраво, Свету!" Скрипт
        Користење на променливи, полиња на база на податоци и агрегатни функции
        Користење на Извештај Објекти во Скриптата
        Настани
        Пример за користење на настанот "OnBeforePrint"
        Печатење на групна сума во групната глава
        Тековна сума
        "OnAfterData" настан
        Сервис Објекти
        Користење на објектот "Мотор"
       [Expand]PANTHEON Функции за FastReport
       [Expand]Примери со Табели и Запроси
       Разглед на дизајн на извештајот
      Текстови на документи
      Начин на достава
     [Expand]АРЕС
     [Expand]Администраторска конзола
     [Expand]Картички за доверба
      Ад-хок анализа
     [Expand]Тековен корисник
     [Expand]Елементи на контролна табла
      Извештаи на контролна табла
      SQL уредувач
    [Expand]Документација
   [Expand]Нарачки
   [Expand]Материјално
   [Expand]Производство
   [Expand]Сервис
   [Expand]ПОС
   [Expand]Финансии
   [Expand]Кадри
   [Expand]Работна површина
   [Expand]Анализи
    Додатно
   [Expand]Аналитика
   [Expand]Пораки и предупредувања
   [Expand]Системско окружување за Даталаб програми
   [Expand]Официјални објаснувања
    Речник на термини
   [Expand]Дополнителни програми
   [Expand]Застарени производи
  [Expand]Водич за PANTHEON Ретал
  [Expand]Водич за PANTHEON Вет
 [Expand]PANTHEON кориснички прирачници
[Expand]PANTHEON Web
[Expand]PANTHEON Гранула
[Expand]Кориснички сервер

Load Time: 937,5123 ms
print   |
Label

Користење на објектот "Двигател"

Користење на објектот "Двигател"

Веќе рековме дека објектот “Двигател” го претставува двигателот на извештајот, кој управува со конструкцијата на извештајот. Процесот на распоредување на бендовите на страницата може да се управува со користење на својствата и методите на двигателот. Прво малку теорија.

Дијаграмот подолу покажува различни димензии на страницата на извештајот.

_img242

Физичките димензии на страницата се својствата “PaperWidth” и “PaperHeight”, видливи во инспекторот на објекти кога страницата е избрана. Значи, големината на A4 страницата е 210 x 297mm.

“PageWidth” и “PageHeight” се димензиите на печатливата област, која обично е помала од физичките димензии на страницата. Големината на печатливата област зависи од својствата на страницата на извештајот “LeftMargin”, “TopMargin”, “RightMargin” и “BottomMargin”. Големината на печатливата област во пиксели се враќа со функциите “Engine.PageWidth” и “Engine.PageHeight”.

На крај, “FreeSpace” е висината на слободното место на страницата. Ако има бенд "Page Footer" на страницата, неговата висина се зема во предвид при пресметувањето на “FreeSpace”. Оваа висина се враќа во пиксели со функцијата “Engine.FreeSpace”. Имајте на ум дека по прикажувањето на следниот бенд слободното место се намалува на страницата, ова се зема во предвид при пресметувањето на “FreeSpace”.

Како се конструираат страниците на извештајот? Основата на FastReport прикажува бендови на страницата дотолку колку што има доволно слободно место. Кога нема повеќе слободно место, бендот “Page Footer" се печати (ако е потребно) и се создава нова празна страница. Како што веќе рековме, по прикажувањето на следниот бенд висината на слободното место се намалува. Понатаму, прикажувањето на следниот бенд започнува од тековната позиција, која е дефинирана со координати на X-оската и Y-оската. Тековната позиција се враќа со “Engine.CurX” и “Engine.CurY” соодветно. По печатењето на следниот бенд, CurY автоматски се зголемува за висината на печатениот бенд. По создавањето на нова страница “CurY” е еднакво на “0.” “CurX” се менува при печатење на мулти-колумни извештаи.

“Engine.CurX” и “Engine.CurY” се достапни не само за читање туку и за пишување. Ова значи дека бендовите можат да се помераат со инкрементирање или декрементирање на овие вредности. На пример, во извештај што изгледа вака:

_img243

Може да се печати на следниов начин:

_img244

Ова се постигнува со пишување на обработувач за настанот “OnBeforePrint” на бендот:

процедура MasterData1OnBeforePrint(Sender: TfrxComponent);

почеток

  Engine.CurX := Engine.CurX + 5;

крај;

Промената на “CurY” може да направи бендовите да се преклопуваат, на пример:

_img245

Постигнато со овој скрипт:

процедура MasterData1OnBeforePrint(Sender: TfrxComponent);

почеток

  Engine.CurY := Engine.CurY - 15;

крај;

Методот “Engine.NewPage” вметнува прекин на страницата на било кој потребен момент во извештајот, по што печатењето продолжува од врвот на новата излезна страница. Во нашиот пример, прекин може да се вметне по печатењето на вториот запис:

процедура MasterData1OnПоПечатење(Sender: TfrxComponent);

почеток

   ако <Line> = 2 тогаш

     Engine.NewPage;

крај;

Имајте на ум дека го користевме настанот “OnAfterPrint” (тоа значи, по печатењето на бендот). Исто така, забележете дека системската променлива “Line” ја враќа секвенцијалната бројка на записот.

Методот “Engine.NewColumn” вметнува прекин на колоната во мулти-колумни извештаи. Ако нема повеќе слободни колони на страницата, тогаш се создава нова страница.

Фактура со Платни Нарачки


Следниот пример е презентиран на печатот на нарачки и фактури со платни нарачки. Тие се достапни само за словенечкото и хрватското законодавство. Таквите извештаи се '2U2 - Фактура - УПН - Формулар' за словенечкото и '2U7 - Фактура - HUB 3A - Формулар' за хрватското законодавство. Можете да го видите дизајнот на овие извештаи отворајќи го дизајнерот на извештаи од регистарот на извештаи.

Сакаме да печатиме платна нарачка секогаш точно на дното на страницата. За да го принудиме ова однесување, ја поставуваме тековната вертикална позиција (Engine.CurY) на бендот за резиме на извештајот така што има точно доволно место за да се прикаже на оваа страница. Ова го правиме со следниот код:

процедура UPNOnBeforePrint(Sender: TfrxComponent);
почеток
  ...
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
крај; 

Кога се создава извештај, платната нарачка ќе се преклопи со постојниот текст ако е премногу висока. Затоа мораме да го коригираме нашиот код за да ја печатиме платната нарачка на следната страница во овој случај.

процедура UPNOnBeforePrint(Sender: TfrxComponent);
почеток
  ...
  ако Engine.CurY > Engine.CurY + Engine.FreeSpace - UPN.Height - 1 тогаш
    Engine.NewPage;  
  Engine.CurY := Engine.CurY + Engine.FreeSpace - UPN.Height - 1;
крај; 



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!