CREAREA PAGINILOR DE POP-UP


Obiectivele acestui capitol


Acest capitol trateaza pagina ca pe un obiect al formelor SQL cu propriile lui atribute. Se discuta urmatoarele:


Paginile


  ________________________________________________________________________
  |                                                                       |
  |                       PAGINILE                                        |
  |                                                                       |
  |                                                                       |
  |       Ce este o pagina?                                               |
  |        - o colectie de informatii afisate                             |
  |        - un obiect al formelor SQL cu atribute                        |
  |                                                                       |
  |       Pentru a creea/modifica paginile:                               |
  |        - alegeti optiunea MODIFY din meniul IMAGE                     |
  |                                                                       |
  |       Pagini care nu sunt la fel cu ecranul                           |
  |                                                                       |
  |       Taste pentru pagina in editorul ecran                           |
  |                                                                       |
  |                                                                       |
  |_______________________________________________________________________|


PAGINILE


Ce este o pagina?


O pagina este formata dintr-un text constant si o colectie de atribute. paginile nu poseda campurile pe care le afiseaza sau blocurile asociate cu ele.

Puteti folosi Copy Object pentru a copia pagini. Numai textul si atribu tele paginii vor fi copiate nu si campurile. Nu puteti folosi Reference la o pagina.

Cum sa creezi/modifici paginile?


Se pot defini o varietate de atribute pentru pagini. Folositi optiunea Image din meniul principal pentru a ajunge la informatii despre o pagina. Optiunea Modify din meniul Image va conduce la Page Definition Spread Table, unde puteti creea,sterge sau modifica atributele unei pagini; ale- gand Painter puteti intra in editorul ecranla o anumita pagina si modifica textul constant din acea pagina. Puteti, de asemenea, sa apasati pe [Sceen Painter] pentru a avea acces la editorul ecran, in mod direct.

Paginile nu sunt acelasi lucru cu ecranul.


O pagina este independenta de ecranul pe care este afisata. Ea poate fi mai mare sau mai mica dacat marimea ecranului. Astfel, multe pagini, sau parti de pagini pot fi afisate simultan pe acelasi ecran.

Taste pentru pagina in editorul ecran.


Daca intri in editorul ecran din submeniul Image vi se prezinta o caseta de dialog in care va intreaba ce pagina vrei sa vezi. Tastati numarul pa- ginii si apasa [Accept].

Daca intri in editorul ecran direct, apasand [Screen Painter], pagina cu- renta va fi afisata pe ecran.

Odata intrat in editorul ecran, tastele [Next Page] si [Previous Page] va ajuta sa va miscati printre pagini. Cu tastele [Next Block] si a>[Previuos Block] puteti schimba contextul blocului curent.

Blocul curent, daca apartine paginii curente va fi luminat. Amintiti-va ca blocurile nu apartin paginilor,astfel schimband un bloc in bloc curent nu inseamna ca pagina se va afisa automat.

DOUA TIPURI DE PAGINI


O pagina din forma SQL poate fi o pagina pop-up sau o pagina "statica".


DEFINIREA PAGINILOR



    ____________________________________________________________________
    |                       Page Definition                            |
    |     _______________________________________________________      |
    |     | Page Number: 1            [  ] Pop Up               |      |
    |     |-----------------------------------------------------|      |
    |     | Page size: X:    Y:      |[  ] Border               |      |
    |     | View size: X:    Y:      |[  ] Vertical Scroll Bar  |      |
    |     | View loc:  X:    Y:      |[  ] Horizontal Scroll Bar|      |
    |     | View page: X:    Y:      |[  ] Remove on Exit       |      |
    |     |-----------------------------------------------------|      |
    |     | Title:                                              |      |
    |     |_____________________________________________________|      |
    |                                                                  |
    |                                                                  |
    |                                                                  |
    |__________________________________________________________________|

     Fig 13.1: Page Definition Form


Definirea paginilor


Atributele paginilor sunt discutate in paginile care urmeaza:

Atributul: numarul de pagina



Numarul paginii identifica o o pagina in cadrul formei SQL. Numarul paginii ordaneaza in editorul ecran, dar nu ii determina si timpul de afisare. O pagina devine activa cand cursorul intra intr-un camp din pagina. Astfel ordonarea blocurilor si a campurilor din blocuri determina ordinea in care paginile devin active.

Odata atasat unei pagini, numarul de pagina nu mai poate fi schimbat.

COORDONATELE VIZIBILE A UNEI PAGINI POP - UP


        PAGINA
       ____________________________________________
       |View                                       ||
       |page(X,Y)                                  ||
       | \                                         ||
       |  \  ___________________                   ||
       |    |                   ||                 ||
       |    |                   ||                 |Page
       |    |                   |View              |size(Y)
       |    |                   |size(Y)           ||
       |    |___________________||                 ||
       |    |-------View--------|                  ||
       |          size(X)                          ||
       |                                           ||
       |___________________________________________||
       |------------Page size(X)-------------------|


       ECRAN
        _____________________________
       |                             |
       | View                        |
       | loc(X,Y)                    |
       |\                            |
       | \ _________________         |
       |  |                 |        |
       |  |                 |        |
       |  |                 |        |
       |  |_________________|        |
       |_____________________________|



Paginile pop-up si atributele lor


Paginile pop-up pot avea orice marime, de la 1 la 255 de caractere in latime si de la 1 la 255 de caractere in inaltime.

Termenul de "pagina" are doua intelesuri cand ne referim la paginile de tip pop-up.

  1. Obiectul care contine campuri si text.
                Page Size       defineste marimea paginii.
    
    
  2. "Fereastra" pop-up sau cadrrul prin care vedem toata pagina. Aceasta fereastra poate fi miscata prin pagina aratand diferite campuri si/sau texte in timp ce se misca.

Urmatoarele atribute de pagina definesc fereastra pop-up:

View Size
dimensiunea ferestrei
View Loc
pozitia ferestrei pe ecran
View Page
pozitia initiala a ferestrei in pagina; cu alte cu- vinte coordonatele View Page determina care parte din pagina va fi vazuta prin fereastra.

Poate fi definita o singura fereastra pentru o pagina pop-up. Marimea si pozitia ( pozitia in pagina si ecran ) sunt redefinibile.

Coordonatele imaginii pentru paginile tip pop-up


Sunt patru perechi de valori X/Y pentru definirea paginilor pop-up. Doua perechi sunt coordonatele actuale (View Page si View Loc) iar celelalte doua sunt dinemsiunile reale (Page Size si View Size).

Definirea paginii:


Intai se defineste Page Size pentru a specifica cat de mare este pagina.
               X - latimea totala a paginii in caractere
               Y - inaltimea totala a paginii in caractere


PAGE SIZE se refera la aria totala a paginii, care este accesibila edi- torului. Marimiea paginii poate fi setata ca cea implicita doar daca nu este nevoie de o pagina mai mare decat cea obisnuita.

Definirea ferestrei unei pagini



Sugestii:

  1. Cursorul trebuie sa fie intotdeauna pozitionat in ecran. Acest lucru poate duce la ingorarea coordonatelor date in View Page.

  2. Pentru a stabili valori rezonabile pentru X si Y, vizualizati pagina in editorul ecran si observati valorile rezonabile penrtu X si Y in linia de stare in timp ce miscati cursorul in pagina.

  3. In mod normal, puteti lasa Page Size la valoarea dimensiunii ecranu- lui ( setata implicit ) si View Page la X=1, Y=1 ( setata implicit ).

Alte caracteristici ale paginilor pop-up



   Pop-up fara border:                  Pop-up cu border si titlu:
                                          ___________________
    ACCOUNTING                            |   Departament   |
    RESEARCH                              |-----------------|
    SALES                                 |   ACCOUNTING    |
    OPERATIONS                            |   RESEARCH      |
                                          |   SALES         |
                                          |_________________|


Alte caracteristici ale paginilor Pop-up: Border, Scroll Bars,
Remove on exit, Title


Border


Border-ul este un cadru imprejurul ferestrei. Implicit, pagina nu are border; folositi butonul [Select] pentru a activa atributul Border.

Scroll Bars


Scroll bar-urile verticale si orizontale sunt folosite pentru a arata cat de mult din pagina de dedesubt este afisata in fereastra. Ele sunt optio- nale.
Scroll Bar-urile arata in ce proportie campurile la care aveti acces sunt aratate in bloc si nu proportia inregistrarilor accesibile care pot fi vazute.

Remove on Exit


Remove on Exit arata daca pagina pop-up-ului trebuie sa dispara sau nu dupa ce cursorul a iesit din pagina. Implicit acest atribut nu este setat folositi tasta [Select] pentru a activa acest atribut.
Nu veti vedea nici un efect al acestui atribut daca cursorul se muta pe o pagina non pop-up. Cand o pagina non pop-up devine activa este afisata pe intreg ecranul.
Puteti, de asemenea, face sa dispara o pagina non pop-up atunci cand nu e activa folosind procedura HIDE_PAGE.

Title


Titlul specifica titlul unei pagini. Acesta va fi centrat si pozitionat in partea de sus a imaginii. Tastati un titlu in campul Title. Daca la- sati campul gol nu va fi afist nici un titlu. Atributul Title este igno- rat daca atributul Border nu este activat.

Nota: Daca pagina nu este definita ca pop-up, SQL Forms ignora cele sta- bilite pentru toate atributele de mai sus.

View Page vs View Loc


View page defineste locatia unei ferestre in pagina:
   ________________________________________________________________
  |                                                                |
  |                                                                |
  |         ID    .....                                    |       |
  |         Name: ...................................      |       |
  |                                                        |       |
  |       Adress: ...................................      |       |
  |                                                        |       |
  |         City: ..........................               |       |
  |                                                        |       |
  |        State: ...                    Tel. Area: ....   |       |
  |  ------------------------------------------------------|       |
  |     Zip code: ........              Phone: ..............      |
  |                                                                |
  | Sales rep ID: .....          Credit limit: ...............     |
  |                                                                |
  |                                                                |
  |     Comments: .............................................    |
  |                                                                |
  |________________________________________________________________|
  Fig 13.2: View page( X=1,Y=1 )


View Loc defineste locatia unei ferestre pe ecran:
   ____________________________________________________________________
  | ______________________________________                             |
  ||                                      |                            |
  ||           Customer List              |____________                |
  ||--------------------------------------|            |               |
  || | ID:   ....                         |.........   |               |
  || | Name: ........................     |            |               |
  ||v|                                    |  Plan: .   |               |
  ||-|------------------------------------|            |               |
  || | |  ........................      |>|.........   |               |
  ||--------------------------------------|            |               |
  ||----- O R D E R    D E T A I L S -----|------------|------------|  |
  ||  Item  Code Description  Std Price Act Price   Qty    Item Tot |  |
  ||  ....  .... ............ ......... ......... ........ ........ |  |
  ||  ....  .... ............ ......... ......... ........ ........ |  |
  ||  ....  .... ............ ......... ......... ........ ........ |  |
  ||                                                                |  |
  ||________________________________________________________________|  |
  | Today is Wednesday, the 25nd of September 1991                     |
  |                                                                    |
  |                                              Current User is FM3T1 |
  |____________________________________________________________________|
  Fig 13.3: View Loc (X=1,Y=1)


Ferestrele pop-up fac scroll automat


Cand cursorul se muta in campul ADRESA, fereastra va face scroll pentru a afisa ADRESA. Pozitia ferestrie pe ecran ramane (oarecum) constanta.
   _______________________________________________________________________
  | _________________________________________                             |
  ||                                         |                            |
  ||           Customer List                 |                            |
  ||-----------------------------------------|------------|               |
  ||-|    Name: IOCKSPORTS                   |            |               |
  ||-|                                       |.........   |               |
  || | Address: 345 VIEWRIDGE                |            |               |
  ||v|                                       |  Plan: .   |               |
  ||-|_______________________________________|            |               |
  || | |  ........................         |>|.........   |               |
  ||-|---------------------------------------|------------|               |
  ||----- O R D E R    D E T A I L S -------------------------------|     |
  ||  Item  Code Description  Std Price Act Price   Qty    Item Tot |     |
  ||  ....  .... ............ ......... ......... ........ ........ |     |
  ||  ....  .... ............ ......... ......... ........ ........ |     |
  ||  ....  .... ............ ......... ......... ........ ........ |     |
  ||                                                                |     |
  ||________________________________________________________________|     |
  | Today is Wednesday, the 25nd of September 1991                        |
  |                                                                       |
  |                                              Current User is FM3T1    |
  |_______________________________________________________________________|

  Fig 13.4: [Next Field] causes Pop-up Scroll


DEFINIREA CARACTERISTICILOR PAGINII PENTRU CUSTOMER PAGE


   _______________________________________________________________________
  |                                                                       |
  |  --------------------- Page Definition -----------------------------  |
  |       _________________________________________________________       |
  |      |                                                         |      |
  |      | Page Number: 7            [ X ] Pop Up                  |      |
  |      |---------------------------------------------------------|      |
  |      | Page Size: X:80 Y:22    | [ X ] Border                  |      |
  |      | View Size: X:60 Y:10    | [ X ] Vertical Scroll Bar     |      |
  |      | View Loc:  X:1  Y:1     | [ X ] Horizontal Scroll Bar   |      |
  |      | View Page: X:1  Y:1     | [   ] Remove on Exit          |      |
  |      |-------------------------|-------------------------------|      |
  |      | Title: Customer Page                                    |      |
  |      |_________________________________________________________|      |
  |                                                                       |
  |                                                                       |
  |                                                                       |
  |                                                                       |
  |_______________________________________________________________________|

  Fig 13.5: Definirea caracteristicilor pentru Customer Page


Determinarea View Size ( 1 )


  1. Construirea blocului implicit
         ______________________________________________
        |
        |              = = = = =   DEPT  = = = = =
        |      DEPT    DNAME            LOC
        |      ....    .............    ...........
        |
    
    
  2. Muta in coltul din stanga sus.

    View Page trebuie sa fie X=1, Y=1
         ______________________________________________
        |
        |  DEPT   DNAME            LOC
        |  ....   ..............   ...........
        |
        |
    
    
  3. Traseaza un chenar imaginar in jurul textului/campurilor.

    Mutati cursorul pe butonul din coltul din dreapta.
         ________________________________________________
        |                                                |
        | DEPT   DNAME            LOC                    |
        | ....   ..............   ............. .        |
        |                                                |
        |                                                |
        |                                                |
        |                                                |
        |                                                |
        |                                                |
        |------------------------------------------------|
        |Frm: DEPT   Blk: DEPT   Page: 1      X: 39  Y: 2|
        |________________________________________________|
    
    

    Determinarea View Size ( 2 )


  4. Acum stabiliti View Size:
            _________________________________________________________
           |                                                         |
           |                                    X:       Y:          |
           |                                                         |
           | Minimum Values                     39        2          |
           |                                                         |
           | Border                             +2       +2          |
           |                                                         |
           | Title                                       +2          |
           |                                                         |
           | Vertical Scroll Bar                +2                   |
           |                                                         |
           | Horizontal Scroll Bar                       +2          |
           |                                                         |
           |                                    43        8          |
           |                                                         |
           |                                                         |
           |                                                         |
           |                                                         |
           | If multi-row block:                                     |
           |                                                         |
           | increment by:                                           |
           |                                                         |
           | extra rows* lines per record                 +4         |
           |                                   .............         |
           |                                    43        12         |
           |                                                         |
           |_________________________________________________________|
    

Vizualizarea paginilor pe ecran: pop-up-urile si non pop-up-urile


Pagina curenta nu este niciodata mascata( acoperita ).

Vizualizarea paginilor pe ecran: Pop-up si non Pop-up


Unde se afla cursorul?


Cel mai important lucru de tinut minte atunci cand lucram cu paginile es te urmatorul:

Cursorul trebuie sa aiba intotdeauna un camp pe ecran in care sa apara!

Ori de cate ori ceri ca o pagina sa apara sau sa dispara, SQL Forms va face acest lucru NUMAI DACA pagina activa( adica pagina ce contine campul in care urmeaza sa fie plasat cursorul ) nu va fi acoperita.

Cum se comporta paginile ?


Pozitia cursorului determina care camp si care pagina sunt active in mo- mentul respectiv.

De fapt, initotdeauna este un stiva de pagini pe ecran iar pagina curenta este deasupra.

In orice moment, imaginea care contine campul activ( si, de aceea, pagina activa ) trebuie sa fie afisata complet. Nici un pop-up nu poate fi supra- pus paginii active.

Pagini non pop-up


Cand o pagina non pop-up devine activa( adica cursorul se muta intr-un camp din pagina ) ea acopera intregul ecran, ascunzandorice alte pagini care au fost afisate anterior.

Daca, pe de alta parte, o pagina non pop-up este afisata atunci cand o pagina pop-up devine activa, se poate ca o portiune a paginii non pop-up sa ramana vizibila.

Paginile pop-up


Orice numar de pagini pop-up poate aparea pe ecran la un moment dat. Ele apar in ordinea in care au fost puse in "stiva".

Paginile pop-up apar ori de cate ori cursorul se muta intr-un camp din pagina sau cand procedura SHOW_PAGE sau macroul corespondent e folosit in pagina.

Mutarea cursorului va face ca o pagina pop-up sa se deruleze automat daca campul destinatie nu a fost afisat inainte.

Capitolul 13 Exercitii


Exercitiul A: Crearea paginilor pop-up



  1. Intrati in Page Definition Form si creaza 2 pagini pop-up.

  2. In editorul ecran al paginii 2, sterge campurile blocului CTL, USER2 si TODAY2 de pe pagina 2. Modificati trigger-ele PRE-FORM si KEY-CLRFRM pentru a sterge referintele la campurile sterse. Mutati campurile CUS si prompterele campurilor in coltul din stanga sus al paginii.

  3. Fixati dimensiunile de afisare ale paginii 2 la X=40 si Y=10 si View Page la X=1 si Y=1. View Loc trebuie sa plaseze pagina in centrul ecranului.

  4. Alegeti optiunea Border si dati paginii titlul 'Customer Details'.

  5. Creati si testati-va forma. In timp ce va mutati in blocul CUS, pagi- na 2 trebuie sa fie vazuta intr-o 'fereastra'. Executati o interogare in blocul CUS si mutati cursorul de la un camp la altul. Observati derularea care se produce.

    Exercitiul B: Faceti ca meniul de comenzi sa fie vizibil permanent.




    Daca aveti timp:

    Exercitiul C: Mutarea campurilor din blocul de control pe o pagina pop-up separata.



    1. Creaza pagina 3 in Page Definition Form. Sa fie pop-up, cu dimensiu- nile: View Size X=80, Y=1, View Loc X=1, Y=4 si View Page X=1, Y=1.

    2. Taiati si lipiti campurile blocului CTL din pagina 1 in coltul din stanga sus al paginii 3.

    3. Folomsiti editorul ecran pentru a muta restul continutului paginii 1 in coltul din stanga sus al paginii; modifica imaginea paginii 1 si dimensiunile paginii la X=80, Y=16 si View Loc X=1, Y=5.

    4. Creati si puneti in executie forma dvs. Observati faptul ca nu apar campurile blocului de control pentru ca pagina 3 nu contine campuri in care se poate intra.

    5. Adaugati procedura SHOW_PAGE la trigger-ul PRE-FORM pentru a afisa pagina a 3-a imediat ce forma a fost pusa in executie.

    6. S-ar putea sa vreti sa modificati atributele paginii 1, 2 sau 3 pen- tru a intari aspectul formei dvs.

    Capitolul 13: Solutii


    Exercitiul A: Afisarea blocului CUS intr-o pagina pop-up.



    Paginile dvs. ar trebui sa arate ca una dintre cele de mai jos.
    
        Pagina 2:
         __________________________________________________________________
        |                                                                  |
        |   CUSTID ........                                                |
        |                                                                  |
        |     NAME ........................................                |
        |                                                                  |
        |  ADDRESS ................................                        |
        |                                                                  |
        |     CITY ...................         COUNT ..................    |
        |                                                                  |
        |    PCODE ............                PHONE ..................    |
        |                                                                  |
        |    REPID ........              CREDITLIMIT ..........            |
        |                                                                  |
        | COMMENTS ..................................................      |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |  .............................................................   |
        |  Frm: ORDERS   Blk: ORD   Page: 2   X: 1  Y: 1   Select:   Rep   |
        |__________________________________________________________________|
    
          Page  |      |Pg Sz|Pg Sz|Vw Sz|Vw Sz|Vw Loc|Vw Loc|Vw Pg|Vw pg
          Number|Pop Up|  X  |  Y  |  X  |  Y  |  X   |  Y   |  X  |  Y
          ------|------|-----|-----|-----|-----|------|------|-----|-----
            2   | [ X ]|  80 |  20 |  40 |  10 |  10  |  5   |  1  |  1
    
    

    Exercitiul B: Faceti ca meniul de comenzi sa fie vizibil permanent.


    
        Pagina 1:
         __________________________________________________________________
        |                                                                  |
        |  Date: ..........................       User:  ............      |
        | ----ORDER-SUMMARY----------------------------------------------- |
        |                                                                  |
        |    Ordid ......              Commplan .   Orderdate .........    |
        |                                                                  |
        |   Custid ......   Name ................    Shipdate .........    |
        |                                                                  |
        |    Repid ......   Name ................       Total ........     |
        |                                                                  |
        | ----ITEM DETAILS------------------------------------------------ |
        |  Item1 Prodid Descrip          Stdprice Actualpri Qty   Itemtot  |
        |  ..... ...... ................ ........ ......... ..... ........ |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        | ................................................................ |
        | Frm: ORDERS   Blk: ORD    Page: 1   X: 1  Y: 1   Select:   Rep   |
        |__________________________________________________________________|
    
        Page  |      |Pg Sz|Pg Sz|Vw Sz|Vw Sz|Vw Loc|Vw Loc|Vw Pg|Vw pg
        Number|Pop Up|  X  |  Y  |  X  |  Y  |  X   |  Y   |  X  |  Y
        ------|------|-----|-----|-----|-----|------|------|-----|-----
          1   | [ X ]|  80 |  19 |  80 |  19 |   1  |   4  |  1  |  1
    
    

    Exercitiul C: Mutarea campurilor din blocul de control pe o pagina pop-up separata.

    
         Pagina 1:
         __________________________________________________________________
        |                                                                  |
        | ----ORDER-SUMMARY----------------------------------------------- |
        |                                                                  |
        |    Ordid ......              Commplan .   Orderdate .........    |
        |                                                                  |
        |   Custid ......   Name ................    Shipdate .........    |
        |                                                                  |
        |    Repid ......   Name ................       Total ........     |
        |                                                                  |
        | ----ITEM DETAILS------------------------------------------------ |
        |  Item1 Prodid Descrip          Stdprice Actualpri Qty   Itemtot  |
        |  ..... ...... ................ ........ ......... ..... ........ |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        | ................................................................ |
        | Frm: ORDERS   Blk: ORD    Page: 1   X: 1  Y: 1   Select:   Rep   |
        |__________________________________________________________________|
    
        Pagina 3:
         __________________________________________________________________
        |                                                                  |
        |    Date: ..............................    User: .............   |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |                                                                  |
        |  .............................................................   |
        |  Frm: ORDERS   Blk: ORD   Page: 2   X: 1  Y: 1   Select:   Rep   |
        |__________________________________________________________________|
    
        Page  |      |Pg Sz|Pg Sz|Vw Sz|Vw Sz|Vw Loc|Vw Loc|Vw Pg|Vw pg
        Number|Pop Up|  X  |  Y  |  X  |  Y  |  X   |  Y   |  X  |  Y
        ------|------|-----|-----|-----|-----|------|------|-----|----
          3   | [ X ]|  80 |   1 |  80 |   1 |   1  |   4  |  1  |  1
          1   | [ X ]|  80 |  16 |  80 |  16 |   1  |   5  |  1  |  1
    
    

    Exercitiul C Intrebarea 5

    
          SELECT TO_CHAR(SYSDATE, 'FMDay, "the" ddth "of" FMMonth'), USER
          INTO   :GLOBAL.TODAY,
                 :GLOBAL.CURR_USER
          FROM   SYS.DUAL;
          :CTL.TODAY1  :=  :GLOBAL.TODAY;
          :CTL. USER1  :=  :GLOBAL.CURR_USER;
    
          IF TO CHAR (SYSDATE,'hh24mI') NOT BETWEEN '0900' AND '1730' THEN
              MESSAGE ('sorry' ||:global.curr-user|| 'you connot work outside
                        office hours!'):
              RAISE FORM_TRIGGER_FAILURE;
          END IF;
          SHOW_PAGE ( 3 );