Погледнете ги упатствата за 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: 1015,6404 ms
print   |
Label

Референцирање на полињата на базата на податоци

Настани

Досега гледавме на скрипти со само една главна процедура, која се извршува кога извештајот започнува да се извршува. Во главната процедура можат да се направат почетни поставки и да се иницијализираат променливи. Сепак, ова не е доволно за целосна контрола над процесот на генерирање на извештајот. За да се овозможи колку што е можно поголема контрола над генерирањето на извештајот, секој објект има неколку настани на кои можат да се доделат обработувачи (т.е. процедури во скриптата). На пример, поврзувањето на обработувач со податочната лента овозможува запишаните записи да се филтрираат, така што лентата може да биде скриена или откриена во зависност од исполнувањето на специфични услови.

Да го демонстрираме процесот на создавање извештај и настаните кои се активираат преку едноставен извештај кој содржи една страница и има една “MasterData” лента, со два “Text” објекти на лентата:

clip0191

Како што е опишано погоре, главната процедура на скриптата се повикува на самиот почеток на извршувањето на извештајот. По тоа, започнуваат основите на конструкцијата на извештајот. Прво, настанот “OnStartReport” на објектот "Report" се повикува. Потоа, пред да се создаде излезна страница, настанот “OnBeforePrint” за страницата се повикува. Овој настан се повикува еднаш за секоја дизајнерска страница во шаблонот на извештајот (дизајнерските страници не треба да се мешаат со излезните страници на извештајот!). Во нашиот пример, настанот се повикува еднаш, бидејќи дизајнот на извештајот се состои само од една дизајнерска страница.

Потоа, настаните на податочните ленти се повикуваат во следниот редослед:

1. настанот “OnBeforePrint” на лентата се повикува

2. настанот “OnBeforePrint” на секој објект содржан во лентата се повикува

3. секој објект се пополнува со податоци (во нашиот пример со вредности на полињата “Company” и “Addr1" од базата на податоци)

4. настанот “OnAfterData” на секој објект се повикува

5. се извршуваат акции како позиционирање на објектите на лентата (ако има растегливи објекти меѓу нив), пресметување на висината на лентата и нејзино растегнување (ако е растеглива)

6. настанот “OnAfterCalcHeight” на лентата се повикува

7. се создава нова излезна страница ако лентата нема доволно простор во белото место на страницата

8. лентата и сите нејзини објекти се прикажуваат на излезната страница

9. настанот “OnAfterPrint” на секој објект од лентата се повикува

10. настанот “OnAfterPrint” на самата лента се повикува

Лентите продолжуваат да се печатат додека изворот поврзан со лентата има податоци. По тоа, печатењето на извештајот се прекинува, настанот “OnAfterPrint” на страницата на извештајот се повикува и на крајот настанот “OnStopReport” на објектот “Report”.

Така, користејќи ги настаните на различни објекти, практично секој чекор од процесот на создавање извештај може да се управува. Клучот за користење на настаните е темелно разбирање на процесот на излез на лентата, што е опфатено во следните делови. Повеќето од акциите можат да се извршат користејќи само настанот “OnBeforePrint” на лентата; сите модификации направени на објект веднаш се прикажуваат. Сепак, ако лентата е растеглива, невозможно е да се каже во овој настан на која страница лентата ќе биде отпечатена, бидејќи пресметувањето на висината на лентата се извршува во чекор 5. Сепак, тоа може да се направи, или во настанот “OnAfterCalcHeight” во чекор 6 или во настанот “OnAfterPrint” во чекор 9. Имајте на ум дека во последниот настан лентата веќе ќе биде излезена, така што модификацијата на објектите нема да има никаков видлив ефект.

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



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