CARACTERISTICILE BLOCULUI

Continutul acestui capitol


Vom arunca o privire asupra caracteristicilor ce pot fi definite pentru un bloc. Aceste lucru cuprinde:

MODIFICAREA OBIECTELOR SQL*FORMS



Modificarea obiectelor SQL*Forms


Majoritatea obiectelor SQL*Forms au doua forme de prezentare: TABELE EXTINSE si FORMATE. Apasand [Change Display Type] se trece dintr-un ecran intr-altul.

FORMATE


Formatul permite editarea detaliata a unui obiect la un moment dat.
 __________________________________________________________________________
| Action  foRm   Block  Field    Trigger   Procedure  Image  Help   Option |
|    ########################## Field Definition #####################     |
|    ------------------------------------------------------------------    |
|   | Field Name:                         |DEPTNO.....................|    |
|   | Sequence Number:  1  Data Type: NUMER      Select Attributes    |    |
|   | Field Length:     4  Query Length: 4      Display Length: 4     |    |
|   | Screen Position:  X:  20  Y:      4       Page:  3              |    |
|   | Format Mask:                                                    |    |
|   | Default Value:                                                  |    |
|   | Hint: Enter value for : DEPTNO                                  |    |
|   | Valid Range: Low:                         High:                 |    |
|   | Enforce Key From:                                               |    |
|   | List of Values:   Title:  Pos:    X:              Y:            |    |
|   |-----------------------------------------------------------------|    |
|   |           -------- List of Values SQL Text --------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   |-----------------------------------------------------------------|    |
|   |        ---------------- Comment -------------------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   ------------------------------------------------------------------     |
|  Enter the field name.                                                   |
|  Frm:  dept_emp       Blk:  dept2     Fld: DEPTNO     Trg:      Rep      |
|__________________________________________________________________________|

Exemplu de Tabela Extinsa


Prezentam primele doua ecrane ale tabelei extinse Block Definition:
  _________________________________________________________________________
 |                                                                         |
 |       ------------------ Block Definition ---------------------         |
 | ______________________________________________________________________  |
 | |_|             |              | Seq | Records | Records | Records | A| |
 | | |  Block Name |  Base Table  | Num |   Disp  |   Buff  |  Lines  |  | |
 | | |-------------------------------------------------------------------| |
 | | | DEPT        | dept         |  1  |   1     |         |    1     | | |
 | | | EMP         | emp          |  2  |  .5..   |         |    1     | | |
 | | | SG          | salgrade     |  3  |   5     |         |          | | |
 | | |             |              |     |         |         |          | | |
 | | |             |              |     |         |         |          | | |
 | |_|             |              |     |         |         |          | | |
 | | |             |              |     |         |         |          | | |
 | |_|_____________|______________|_____|_________|_________|____________| |
 | |_|_________________________________________________________________|> | |
 |                                                                         |
 |_________________________________________________________________________|

  _________________________________________________________________________
 |                                                                         |
 |       ------------------ Block Definition ---------------------         |
 | ________________________________________________________________________|
 | |_|            | Array   | Primary  |   In  | Columns |   Menu     | A| |
 | | | Block Name |  Size   |   Key    |  Menu |   Sec   | Description|  | |
 | | |------------|---------|----------|-------|---------|------------|--| |
 | | | DEPT       | .....   |  [   ]   | [ X ] |  [   ] | Depart inf  |  | |
 | | | EMP        |         |  [   ]   | [ X ] |  [   ] | Empl Detail |  | |
 | | | SG         |         |  [   ]   | [ X ] |  [   ] | Grad by Sal |  | |
 | | |            |         |          |       |         |            |  | |
 | | |            |         |          |       |         |            |  | |
 | |_|            |         |          |       |         |            |  | |
 | | |            |         |          |       |         |            |  | |
 | |_|____________|_________|__________|_______|_________|____________|  | |
 | |<|__________________________________________________________________|> | |
 |                                                                         |
 |_________________________________________________________________________|


TABELE EXTINSE


Tabelele extinse permit editarea rapida a catorva obiecte de acelasi tip. Tabelele sunt in mod normal mai largi decat un ecran. Pentru a avansa la urmatorul ecran, apasati [Next Field] atunci cand sunteti situati pe cel mai din dreapta camp al ecranului curent.

REGIUNI DE DEFILARE SI EDITORUL DE TEXTE



 __________________________________________________________________________
| Action   foRm  Block  Field    Trigger   Procedure  Image  Help   Option |
|    ########################## Form Definition #####################      |
|    ------------------------------------------------------------------    |
|  | Title:                      dept_emp                             |    |
|  | Validation Unit:                                                 |    |
|  | Mouse Navigation Limit:                                          |    |
|  | Default Menu Application:  default                               |    |
|  | Starting Menu Name                                               |    |
|  | Manu Security Group Name                                         |    |
|  |------------------------------------------------------------------|    |
|  |        ---------------- Comment -------------------              |    |
|  |  ...........................................................     |    |
|  |  ...........................................................     |    |
|  |  ...........................................................     |    |
|  |  ...........................................................     |    |
|  |  ...........................................................     |    |
|  |                                                                  |    |
|  --------------------------------------------------------------------    |
| Enter any comment for the form.                                          |
| Frm:  dept_emp        Blk:  dept2     Fld:  DEPTNO     Trg:      Rep     |
|_________________________________________________________________________ |


Regiuni de defilare si Editorul de texte




Pentru a folosi functia de cautare:

  1. Apasati [Search]. Va apare casuta de dialog Search.
  2. Specificati criteriul de cautare in campul Search for: si apasati [Accept].
    Daca doriti sa inlocuiti sirul, introduceti un sir in campul Replace with: si marcati casuta de optiune Replace. Desemnati o cautare inapoi marcand casuta de optiune Backward.


 ----------------------------------------------------------------------
|                       Search                                         |
|                                                                      |
|               Search for:                                            |
|                _____________________________________________         |
|               |                                             |        |
|                ---------------------------------------------         |
|               Replace with:                                          |
|                                                                      |
|               [  ] Backward           [  ] Replace                   |
 ----------------------------------------------------------------------


FORMATUL BLOCK DEFINITION


 __________________________________________________________________________
| Action  foRm   Block  Field   Trigger  Procedure  Image    Help   Option |
|    ########################## Block Definition #####################     |
|    ------------------------------------------------------------------    |
|   | Block:   DEPT                 | -- Records --| Array Size       |    |
|   | Table:   dept                 | Displayed: 1 | [   ] Prim Key   |    |
|   | Sequence Number:  1           | Buffered:    | [ X ] In Menu    |    |
|   |                               | Lines per:   | [   ] Column Sec |    |
|   |-----------------------------------------------------------------|    |
|   | Description:      Department Information                        |    |
|   |-----------------------------------------------------------------|    |
|   |        --------- -Default Where/Order By -----------            |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   |-----------------------------------------------------------------|    |
|   |        ---------------- Comment -------------------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   ------------------------------------------------------------------     |
|  Enter the number of records to dispaly in the block.                    |
|  Frm:  dept_emp    Blk:  dept2    Fld:         Trg:              Ins     |
|_________________________________________________________________________ |


Caracteristicile blocului:


Pentru a accesa formatul Block Definition selectati Modify din submeniul Block. Apoi apasati [Change Display Type].

Urmatoarele caracteristici pot fi setate/modificate folosind acest format:
Block Name (Block)
numele pe care SQL*Forms il foloseste pentru a identifica blocul, care trebuie sa fie unic.
Base Table (Table)
numele tabelei careia ii corespunde blocul. Unele blocuri nu au o tabela de baza.
Sequence Number
daca blocul are campuri de intrare, indica ordinea in care cursorul se muta in bloc cand formatul este executat.
Records Displayed (Displayed)
specifica numarul maxim de inregistrari care pot fi afisate in bloc la un moment dat.
Records Buffered (Buffered)
specifica numarul maxim de inregistrari pe care le poate retine in memorie SQL*Forms atunci cand un chestionar este realizat asupra blocului; orice alte campuri suplimentare sunt scrise intr-un fisier temporar.
Lines per Record (Lines per)
specifica numarul de linii rezervate pentru fiecare bloc. Este important numai pentru blocurile cu mai multe randuri.
Array Size
specifica numarul maxim de inregistrari pe care le poate extrage SQL*Forms din baza de date la un moment dat.

Mai multe despre Records Buffered si Array Size


Record Buffered se refera la numarul de inregistrari pe care le poate stoca in memorie SQL*Forms; influenteaza cantitatea de memorie rezervata pentru inregistrarile aduse de un chestionar. Valoarea implicita pentru acest camp este aceeasi valoare setata pentru numarul de inregistrari afisate (plus o mica constanta).

Array Size se refera la numarul de inregistrari pe care SQL*Forms le poate extrage din baza de date la un moment dat. Setand acest camp la o valoare rezonabil de mare se reduce timpul general de procesare facandu-se mai putine apeluri pentru un numar mare de inregistrari. Valoarea implicita este numarul de inregistrari pe care blocul le poate afisa la un moment dat.

Cand modificati setarile unuia dintre aceste campuri, trebuie sa tineti seama de valorile curente ale altor campuri. Array Size trebuie sa fie mai mica sau egala cu Records Buffered.


Alte caracteristici de bloc


Primary Key (Prim Key)
asigura ca orice alta inregistrare de introdus nu duplica un rand deja existent in blocul tabelei de baza; Corporatia Oracle recomanda ca acest atribut sa NU fie selectat; folositi un index unic.
In Menu
indica daca descrierea blocului va apare sau nu in meniul blocului; daca este setat on, user-ul va putea selecta blocul din meniu.
Column Security (Column Sec)
indica daca SQL*Forms trebuie sa respecte sau nu drepturile de scriere pe coloane intr-un bloc al tabelei de baza.


Mai multe despre Column Security


Caracteristica Column Sec indica daca SQL*Forms poate respecta drepturile de update pe coloane pentru un bloc al tabelei de baza.

Daca este setata on, SQL*Forms respecta drepturile de update ce sunt definite in baza de date pentru operatorul curent. Daca un operator nu are drepturi de update pentru o anume coloana a tabelei de baza, SQL*Forms va face campul corespunzator ne-actualizabil -doar pentru acest operator- prin setarea off a campului caracteristicii Update Allowed.

De exemplu, Jim Scott este proprietarul tabelei DEPT. El creaza un format numit DEPT_EMP care contine un bloc bazat pe tabela DEPT. Scott seteaza on optiunea Column Sec a blocului DEPT.

Sa presupunem ca Scott a acordat drepturi limitate pentru DEPT lui Mary Crane folosind comanda GRANT:
             GRANT SELECT, UPDATE (LOC) ON DEPT TO CRANE;

Cand Crane ruleaza formatul DEPT_EMP, ea poate actualiza campul LOC, dar primeste mesajul
                Field protected against update

cand incearca sa oricare alt camp din blocul DEPT.

Caracteristica Default Where/Order By


Campul Default Where/Order By va permite sa specificati clauza Where/ Order By implicita (sau amandoua) care sa fie folosita oricand blocul este interogat. Daca este specificata o clauza Where, se va realiza un SI logic intre conditiile sale si orice conditii prevazute de utilizator. Pe de alta parte, o clauza Order By face un SAU logic atunci cand nu a fost prevazuta o astfel de clauza.

Alte caracteristici ale blocului


Menu Description (Description)
indica textul afisat in meniul blocului
Comment
va ofera o metoda de a descrie scopul si caracteristicile blocului.
 __________________________________________________________________________
| Action  foRm   Block  Field   Trigger  Procedure   Image   Help   Option |
|    ########################## Block Definition #####################     |
|    ------------------------------------------------------------------    |
|   | Block:   EMP                  | -- Records --| Array Size       |    |
|   | Table:   emp                  | Displayed: 5 | [   ] Prim Key   |    |
|   | Sequence Number:  2           | Buffered:    | [ X ] In Menu    |    |
|   |                               | Lines per: 1 | [   ] Column Sec |    |
|   |-----------------------------------------------------------------|    |
|   | Description:      Department Information                        |    |
|   |-----------------------------------------------------------------|    |
|   |        --------- -Default Where/Order By -----------            |    |
|   | WHERE JOB = 'PRESIDENT'                                         |    |
|   |     AND EXISTS / SELECT DEPTNO FROM DEPT                        |    |
|   |                  WHERE DEPTNO = EMP.DEPTNO                      |    |
|   | ORDER BY EMPNO                                                  |    |
|   |-----------------------------------------------------------------|    |
|   |        ---------------- Comment -------------------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   ------------------------------------------------------------------     |
|  Enter the deafult where and order by clauses for queries in this block  |
|  Frm:  personnel   Blk:  EMP      Fld:         Trg:              Ins     |
|_________________________________________________________________________ |

Obs: Daca sunt prezente si clauze Where si clauze Order By, clauza Where are prioritate.


           ------------------------------------------------------------
          |     ------------- Default Where/Order By -------------     |
          | EMPNO                                                      |
          |                                                            |
          |____________________________________________________________|


UN MENIU BLOC



EXERCITII


Exercitiul A: Schimbarea caracteristicilor blocului.


  1. Logati-va in SQL*Form (Design). Incarcati formatul ORDER.
  2. Alegeti Modify din submeniul Block. Tabela extinsa Block Definition va fi afisata, listand blocurile ORD si ITEM.
  3. Apasati [Change Display Type] pentru a vedea toate caracteristicile blocului pentru ORD. Formatul Block Definition este acum afisat.
  4. Faceti urmatoarele schimbari in blocul ORD:
    1. Schimbati Records Buffered la 20 si Array Size la 10.
    2. Dati blocului o descriere mai explicita.
    3. Asigurati-va ca taoate ordinele sunt intoarse in chestionar ordonate dupa data si identificator.
  5. Faceti urmatoarele schimbari blocului ITEM:
    1. Schimbati Records Displayed la 4.
    2. Schimbati Records Buffered la 20 si Array Size la 10.
    3. Scrieti o descriere mai explicita.
  6. Asigurati-va ca toateobiectele afisatesunt ordonate dupa ITEMID.
  7. Generati si executai formatul. Apasati [Block Menu] pentru a vedea efectul pasilor 4b si 5c.


SOLUTII

Exercitiul A.

4.
 __________________________________________________________________________
| Action  foRm   Block  Field   Trigger  Procedure  Image    Help   Option |
|    ########################## Block Definition #####################     |
|    ------------------------------------------------------------------    |
|   | Block:   ORD                  | -- Records --| Array Size: 10   |    |
|   | Table:   ord                  | Displayed: 1 | [   ] Prim Key   |    |
|   | Sequence Number:  1           | Buffered: 20 | [ X ] In Menu    |    |
|   |                               | Lines per:   | [   ] Column Sec |    |
|   |-----------------------------------------------------------------|    |
|   | Description:      Order Summary Information                     |    |
|   |-----------------------------------------------------------------|    |
|   |        --------- -Default Where/Order By -----------            |    |
|   | order by orderdate, ordid                                       |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   |-----------------------------------------------------------------|    |
|   |        ---------------- Comment -------------------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   ------------------------------------------------------------------     |
|                                                                          |
|_________________________________________________________________________ |

        5,6
 __________________________________________________________________________
| Action foRm   Block  Field    Trigger  Procedure  Image    Help   Option |
|    ########################## Block Definition #####################     |
|    ------------------------------------------------------------------    |
|   | Block:   ITEM                 | -- Records --| Array Size: 10   |    |
|   | Table:   item                 | Displayed: 4 | [   ] Prim Key   |    |
|   | Sequence Number:  2           | Buffered: 20 | [ X ] In Menu    |    |
|   |                               | Lines per: 1 | [   ] Column Sec |    |
|   |-----------------------------------------------------------------|    |
|   | Description:      Item details for an order                     |    |
|   |-----------------------------------------------------------------|    |
|   |        --------- -Default Where/Order By -----------            |    |
|   | itemid                                                          |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   |-----------------------------------------------------------------|    |
|   |        ---------------- Comment -------------------             |    |
|   |                                                                 |    |
|   |                                                                 |    |
|   -------------------------------------------------------------------    |
|                                                                          |
|_________________________________________________________________________ |