PRIVIRE DE ANSAMBLU SQL*MENU VERSIUNEA 5.0
Scopurile acestei sectiuni:
Aceasta sectiune este proiectata sa dea o privire de
ansamblu asupra caracteristicilor, operatiilor si proiectarii
aplicatiilor SQL*Menu.
Ce este SQL*Menu?
SQL*Menu este o unealta de dezvoltare, folosita pentru
legarea si structurarea aplicatiilor, oferind securitate,
flexibilitate si un aspect uniform pentru aplicatiile tuturor
utilizatorilor.
O interfata meniu are urmatoarele avantaje si
caracteristici:
- Operatorii pot selecta item-urile pe care au voie sa le
selecteze
- Erorile de tiparire sunt reduse (operatorul selecteaza
item-uri, nu mai tasteaza comenzi)
- Alegerea stilurilor de afisare a meniurilor (se poate
alege cel mai potrivit stil pentru aplicatie. Stiluri
disponibile: Full-screen, Pull-down si Bar)
- Legaturi ierarhice si neierarhice - operatorul poate
naviga spre radacina sau frunzele arborelui meniului. In stilul
free-screen operatorul poate sa se mute dintr-o parte a
aplicatiei meniu in alta utilizand Direct Selection.
- Functii pe post de item-uri meniu - proiectantii pot crea
item-uri meniu care executa una sau mai multe functii meniu.
Procedurile packaged pun la dispozitie comenzi simple; PL/SQL
aduce un limbaj puternic de comnezi.
- Substitutii ale valorilor parametrilor - meniul poate cere
informatii cand operatorul selecteaza un item din meniu.
- Comenzi ale sistemului de operare - acestea pot fi
prezente prin doua cai. Menu-driven: operatorii nu trebuie sa
invete proceduri de comanda complexe. User-entered: operatorul
poate folosi sistemul de operare din structura meniu.
- Meniu background - disponibil de oriunde din meniu, ofera
"accelerator keys" pentru comenzile frecvent utilizate.
- Securitatea aplicatiilor si meniuri dinamice - SQL*Menu
mentine securitatea la nivelul aplicatiei si la nivelul item-
urilor meniurilor individuale. Accesul la un item este controlat
de apartenenta utilizatorului la "rolurile" de securitate.
- Integrarea cu SQL*Forms versiunea 3.0 - SQL*Menu a putut
intotdeauna sa ruleze aplicatii SQL*Forms. SQL*Forms poate chema
SQL*Menu ca serviciu layer, utilizand orice meniu din
environment-ul formei.
Strategia "Dynamic Menu" (meniuri dinamice)
Accesul la meniu este controlat de apartenenta la roluri.
Continutul meniului se va schimba, in functie de ce operator il
utilizeaza. De exemplu, un operator poate vedea trei item-uri
utilizabile in meniu, alt operator poate vedea zece. Item-urile
disponibile vor aparea pe ecran bold. Item-urile nedisponibile
pot fi ascunse sau afisate non-bold. Proiectantul poate decide,
pentru fiecare item sa afiseze sau sa ascunda item-urile
nedisponibile.
Permisiunea de a folosi item-uri meniu este acordata
categoriilor de privilegii, numite roluri (roles). Un rol poate
accesa un anumit set de item-uri meniu intr-o aplicatie.
Utilizatorii sunt atasati unor roluri functie de accesul pe care-
l doresc. Cand o aplicatie ruleaza, apartenenta la roluri
determina item-urile disponibile. Apartenenta la mai mlte roluri
va da acces la toate item-urile disponibile pentru rolurile
combinate.
Cine poate utiliza SQL*Menu?
Administratorul SQL*Menu acorda accesul la SQL*Menu, putand
da utilizatorilor unul dintre urmatoarele trei nivele de acces:
- Execute - utilizatorii pot intra in SQL*Menu (Run Menu) si
pot rula orice aplicatie pentru care au drepturi (tinand cont de
apartenenta la roluri). Au drept SELECT pe baza de tabele
SQL*Menu.
- Design - posibilitatea de a crea aplicatii meniu si genera
documentatie. Ei au drepturi SELECT, INSERT, UPDATE si DELETE pe
baza de tabele.
- Administrative - controlul accesului utilizatorilor la
SQL*Menu. Au aceleasi privilegii ca proiectantii (designers). Au
si dreptul de GRANT asupra bazelor de tabele.
Cerinte SQL*Menu
SQL*Menu necesita ORACLE RDBMS versiunea 6.0. Poate si legat
la SQL*Forms versiunea 3.0 si la SQL*Plus versiunea 3.0.
Pentru a utiliza SQL*Menu este nevoie:
- nume utilizator si parola - pentru a accesa sistemul de
operare
- nume utilizator si parola ORACLE - pentru a accesa ORACLE
- inrolarea SQL*Menu - daca este ceruta
- apartenenta la roluri - pentru a rula aplicatii relevante
Folosirea SQL*Menu
Sunt disponibile trei stiluri de afisare:
- Pull-down
- Bar
- Full-screen
Fiecare din stilurile de afisare va afisa aceleasi item-uri
meniu. Stilurile Pull-down si Bar folosesc numele scurt pentru
fiecare item, numele intreg pentru item-ul respectiv fiind
folosit ca indicatie in partea de jos a ecranului. Meniurile
full-screen folosesc tot textul item-ului ca identificator pentru
item.
Cand un item Pull-down a fost actionat, meniul se intoarce
intotdeauna la meniul superior. Pentru stilul Full-screen si Bar
se va ramane in acelasi meniu.
Sintaxa pentru a schimba stilul de afisare:
runmenu application_name -M {PULLDOWN|BAR|FULLSCREEN}
OR
runmenu application-name -M {P|B|F}
Navigarea in Runmenu
Pentru a naviga prin arborele meniului prin cai standard
selectati item-ul meniului care cheama un submeniu. In full-
screen selectarea directa de item-uri meniu este disponibila.
Urmatoarele taste functionale sunt disponibile pentru
navigatie:
[RIGHT] si [LEFT] Muta la item-urile adiacente din
meniurile Bar si meniul principal
Pull-down
[UP] si [DOWN] Meniuri full-screen si submeniuri
pull-down: pozitioneaza la item-urile
adiacente
[NEXT FIELD] si Pozitionarea pe campurile dintr-o
[PREVIOUS FIELD] cutie de dialog
[SHOW BGM] Afiseaza meniul background daca
exista si daca rolul dumneavoastra
are permisia background menu (< BGM>
in linia de stare)
[MAIN MENU] Pozitionarea pe meniul principal
[APPLICATION MENU] Pozitionarea pe meniul aplicatiei. De
aici puteti selecta alt meniu al
aplicatiei sau puteti iesi din
SQL*Menu
[EXIT]/[CANCEL] Iesirea din aplicatie. Intr-un
submeniu Pull-down sunteti pozitionati pe meniul
parinte. Printr-o cutie de dialog sunteti
pozitionat din nou in meniu.
Meniuri pull-down si bar
----------------------------------------------------------------
|Reports Utilities Orders Exit |
|-------------------SQL*Menu V5.0 Course Demonstration-----------
| | Orders | |
| | Products |---------------- |
| | Customers | All customers | |
| ------------- One customer | |
| |---------------- |
| |
| |
| |
| |
| |
| |
| |
| |
|Report on products ordered by all customers |
|Application : ORDMENU BGM OSC DBG REP |
| |
---------------------------------------------------------------
Fig 24.1: Exemplu de meniu pull-down
Diagrama de mai sus reprezinta un meniu ruland cu optiunile
implicite, cu afisarea de tipul pull-down. Acesta are
caracteristicile:
- LINIA DE TITLU
- Contine identificatorul
aplicatiei
- LISTA DE ITEM_URI
- Fiecare meniu are o lista de unul sau
mai multe item-uri. Item-urile sunt
identificate dupa numele scurte.
Item-urile inactive vor fi afisate
diferit. Daca nu pot fi afisate toate
item-urile va exista o sageata la
sfarsitul listei pentru a arata ca
mai sunt item-uri de afisat.
- OPTIUNEA CURENTA LUMNATA
- Cand un meniu apare prima data primul
item este intotdeauna optiunea
curenta.
- TEXTUL PENTRU OPTIUNEA CURENTA
- Textul integral al item-ului este
folosit ca o indicatie pentru
optiunea curenta si apare pe linia de
mesaje.
- NUMELE APLICATIEI
- Este afisata in linia de stare in
partea de jos a ecranului.
- OPTIUNI DISPONIBILE
- Pe linia de stare BGM, OSC si
DBG indica faptul ca utilizatorul
are acces la meniul backround ,
optiunile sistemului de operare si la
modul debug.
- MODUL DE EDITARE
- Pe linia de stare REP indica modul
typeover sau INS indica modul
inserare.
Meniurile cu stilurile pull-down si bar afiseaza diferit
submeniurile:
- In stilul bar sunt afisate toate meniurile din linia de
meniu in partea de sus a ecranului.
- Meniul pull-down tine meniul principal pe ecran si arata
submeniurile in cutii pull-down dedesubtul liniei de
meniu.
Navigarea si selectarea item-urilor
- Luminati item-ul prin pozitionarea cursorului pe el
utilizand tastele cursor apoi apasati [RETURN]
SAU
- Tastati litera majuscula din numele item-ului. Daca nu
este unica in meniul curent, atunci selectia unui item va depinde
de pozitionarea cursorului.
Meniuri full-screen
---------------------------------------------------------------
| |
---------------------------------------------------------------
| Sales Order Application |
| |
| A Sample Menu Application |
| |
| |
| |
| 1. Report on sales orders and customers |
| 2. Display the utilities menu |
| 3. Update sales orders and customer data |
| 4. Exit from the Orders menu specification |
| |
| |
| |
| Enter your choice: |
| Summit Sporting Goods |
| |
|Application: ORDMENU Menu: ORDMENU u ^ BGM OSC DBG REP |
| |
---------------------------------------------------------------
Fig 24.2: Exemplu de meniu full-screen
Imaginea reprezinta un meniu rulat in stilul de afisare
full-screen . Acesta are caracteristicile urmatoare:
- TITLU
- Afiseaza titlul meniului (maxim 40 de
caractere) - folosit de obicei pentru a
afisa numele aplicatiei.
- SUBTITLU
- Afiseaza subtitlul meniului - maxim 40
de caractere.
- LISTA DE ITEM-URI
- Item-urile sunt identificate de textul
intreg a item-ului (70 de caractere
maxim). Nu vor fi afisate item-urile
nedisponibile.
- OPTIUNEA CURENTA ILUMINATA
- Cand este afisat prima data un meniu,
primul item este intotdeauna luminat.
- 'ENTER YOUR CHOICE'
- Camp utilizat pentru a selecta item-
urile meniului.
- OPTIUNI DISPONIBILE
- Pe linia de stare , si
indica faptul ca utilizatorul are acces
la meniul background, comenzile
sistemului de operare si la modul
debug.
- MODUL EDIT
- Pe linia de stare indica modul
typeover sau indica modul insert.
Navigarea si selectarea item-urilor
- Selectati orice item din meniu prin tastarea numarului lui
in campul 'Enter your choice' si apasati [RETURN].
SAU
- Mutati cu tastele [UP] si [DOWN] selectia luminoasa pana
la item-ul dorit si apasati [RETURN].
Navigarea prin selectie directa
- Pozitionati-va direct intr-un meniu prin tiparirea numelui
meniului in campul 'Enter your field' si apasati [ENTER].
SAU
- Selectati un item din meniu prin tiparirea numelui
meniului, o liniuta si numarul item-ului in campul 'Enter your
choice' si apasati [RETURN].
Restrictii la selectarea directa
Nu puteti:
- Sa va mutati dintr-un meniu al aplicatiei in meniuri sau
item-uri dintr-o alta aplicatie.
- Sa va mutati inapoi in meniul aplicatiei
Tastati [APPLICATION MENU].
- Sa va referiti la meniuri sau item-uri intr-o aplicatie
diferita.
Optiunea WHERE
Optiunea Where este utila pentru operatorii ce utilizeaza un
nou meniu aplicatie. Le permite sa vada calea folosita spre
diferite meniuri, dandu-le posibilitatea sa inteleaga repede
structura meniului. Aceasta optiune este disponibila doar in
meniurile full-screen. Poate fi activata/dezactivata prin
folosirea cheii functionale [WHERE DISPLAY].
Optiunea Where afiseaza intr-o linie orizontala pe ecran
chiar dedesubtul subtitlului meniul curent, si oricare meniuri
selectate pentru a ajunge la el. Toate numele de meniuri vor fi
trunchiate la sase caractere.
Introducerea valorilor parametrilor
Daca un parametru este asociat cu un item atunci o cutie de
dialog va aparea, cerand valoarea respectiva pentru a fi inserata
in campul de introducere date. Aceasta intrare nu va fi validata
de meniu. Pentru a folosi cutii de dialog:
- Tastati informatia respectiva si apasati [ACCEPT].
- Daca cutia de dialog are mai mult de un camp de
introducere date folositi [NEXT FIELD] si [PREVIOUS FIELD] pentru
a naviga.
HELP
Sunt disponibile mai multe help-uri on-line.
- Indicatii
- Mesaje de eroare
- Help pentru chei functionale
- sistemul de help al aplicatiei
Tip de Help Descriere
Indicatii si descrieri Indicatiile apar doar in meniurile
pull-down si bar. Ele vor afisa textul
intreg pentru item-ul curent.
Mesaje de eroare Mesaje de eroare pot sa apara in linia
de mesaje pentru a va ajuta sa
corectati si detectati erorile.
Help pentru tastele Pentru a afisa o lista cu cheile
functionale functionale in contextul curent si
maparile pe terminalul dumneavoastra
tastati [SHOW KEYS].
Sistemul de help al Informatii de help context-sensitive
aplicatiei pot fi puse la dispozitie de
proiectant. Mutati cursorul la item-ul
respectiv si apasati [HELP] pentru
aceste informatii. Vor fi afisate intr-
un format modificat full-screen.
Meniuri background
Meniurile background ofera shortcut-urile si functiile
generale pentru a a rula o aplicatie. Daca un meniu background
este disponibil, veti vedea BGM pe linia de stare. Daca nu
apara sau rolul dunmeavoastra nu va da acces sau nu exista un
meniu background.
Cheia functionala [SHOW BGM] va afisa meniul background,
listand item-urile si cheile asociate, intr-un display full-
screen modificat.
Pentru a selecta o optiune dintr-un meniu background apasati
cheia [BACKGROUND MENU] urmata de numarul optiunii.
NOTA: Nu puteti accesa direct item-uri din meniul background
afisat in stil bar sau pull-down. El arata o lista de item-uri
disponibile impreuna cu tastele corespunzatoare. Intr-un meniu
full-screen este posibil sa navigati spre meniul background
utilizand selectarea directa (tastati BGM in campul 'Enter your
choice' si apasati [RETURN]).
Comenzile sistemului de operare
Aceasta facilitate permite accesul direct la sistemul de
operare. OSC afisat pe linia de stare indica daca aveti acces.
Sunt disponibile doua chei functionale:
[ENTER 1 OS COMMAND] Introduceti o comanda. Cand comanda
a fost executata vi se va cere sa
apasati orice tasta pentru a va
intoarce in meniu.
[ENTER 1 OS COMMAND] Introduceti mai mult decat o
comanda. Pentru a va intoarce la
meniu apasati [RETURN] pe o linie
goala.
Introducere in proiectarea meniurilor
Inainte de proiectarea unui meniu al aplicatiei trebuie
considerata utilitatea dorita pentru aplicatie. Aceasta va avea
un impact asupra proiectarii finale a meniului. Meniurile pot
folosi pentru:
- Structura sistemului si securitate - rularea meniului din
sistemul de operare.
- Aplicatie meniu integrata in SQL*Forms 3.0.
Limitari
SQL*Menu pune putine limitari pentru proiectantii de
aplicatii, totusi este bine sa tineti cont de aceste limitari in
timpul proiectarii aplicatiei. Limitarile sunt:
- Nici o limita la numarul de aplicatii meniu.
- Imbricarea meniurilor este de maxim 10.
* Pana la un numar de 270 de meniuri intr-o aplicatie.
- Nici o limita la numarul de item-uri intr-un meniu.
- Parametri de substitutie - maxim 59 pe aplicatie.
Primii pasi in proiectarea SQL*Menu basic
O aplicatie SQL*Menu consista din obiecte definite utilizand
interfata proiectantului. Aceste obiecte vor include aplicatia
insasi, meniurile, item-urile meniu, parametri de substitutie
si procedure PL/SQL pe care le invoca item-rile meniu.
Pasii fundamentali in construirea unei aplicatii SQL*Menu:
- Analiza cerintelor - decideti exact pentru ce este meniul
si ce trebuie sa faca.
- Proiectati aplicatia - decideti stilul afisarii, accesul
utilizatorului, etc.
- Construiti aplicatia.
- Salvati, generati si testati - debug daca este necesar.
- Elaborati documentatia pentru utilizatorii finali.
Proiectarea aplicatiei
Cand proiectati aplicatia trebuie sa considerati urmatoarele
lucruri:
- Stilul de afisare al meniului - Daca meniul aplicatiei este
utilizat ca 'front end' pentru sistem, atunci stilul full screen
poate fi mai potrivit. Stilul pull-down poate fi mai potrivit pentru
meniuri integrate in cadrul formelor, iar utilizarea stilului bar
ar fi relevanta intr-o utilizare integrata unde utilizatorul trebuie
sa vada si restul ecranului cand este in meniu.
Alegerea stilului de afisare trebuie sa fie utilizata
consistent pentru sistemul dezvoltat.
- Selectarea item-urilor - dependenta de stilul de afisare
ales, poate influenta denumirea item-urilor meniului. Selectarea
prin majuscule utilizata in stilurile pull-down si bar inseamna
ca numele item-urilor trebuie sa aiba majuscule distincte in
cadrul unui meniu, cu restul numelui item-ului in minuscule.
Stilul full-screen utilizeaza numele intreg de item pentru a
identifica fiecare item al meniului (acest text este utilizat ca
indicatie in stilurile pull-down si bar).
- Accesul rolurilor - Ce roluri au acces la care item-uri?
Ce acces special (daca trebuie unul) va necesita fiecare rol
pentru modul debug, meniurile background si sistemul de operare?
- Environmentul (mediul) meniului - Va invoca acest meniu si
alte produse ? Daca da, sunt unele conditii care trebuie
satisfacute ?
- Meniu backround - Ce item-uri (daca exista) vor fi
folositoare intr-un meniu background? Meniul background ar trebui
utilizat pentru a da acces rapid la item-uri frecvent utilizate
in meniu. Atentie: nu exista securitate individuala a item-urilor
in meniul background - deci daca aveti acces la meniul background
ii puteti utiliza toate item-urile.
- Accesul al sistemul de operare - Este necesar accesul
direct la sistemul de operare? Implementarea poate sa fie printr-
un item meniu sau utilizand o cheie functionala.
Proiectarea arborelui meniu
Un exemplu de structura a arborelui meniului:
ORDERS
meniu principal
|
|
-------------------------------------------------
| | | |
-------------- ------------- Orders Exit
| REPORTS | | UTILITIES | Acest item
| submeniu | | submeniu | ruleaza forma
-------------- ------------- ORDERS
| |
| -----------------------------
| | | |
| Directory OS SQL*Plus
| Commands
|
-----------------------------------------------------
| | |
--------- ---------- Customers
|ORDERS | | PRODUCTS |
|submeniu | | submeniu |
--------- ----------
| |
--------- -------------
| | | |
All Dated All One
orders orders customers customer
------------------
| BGM |
| meniu background |
------------------
|
-------------------------
| |
Dated orders Orders
Acest item ruleaza
forma ORDERS
Fig 24.3: Un exemplu de diagrama a arborelui meniu.
Consideratii precise trebuie facute in planificarea
stucturii meniului dumneavoastra. Ar fi de ajutor sa construiti o
diagrama a arborelui meniului asa cum a fost ilustrat mai sus.
Aceasta va va ajuta sa descoperiti caile meniului pe care trebuie
sa le creati.
Iata niste sugestii
- Item-urile dintr-un meniu trebuie sa aiba functionalitati
sau scopuri similare. De exemplu, un meniu poate contine doar
forme sau rapoarte daca este grupat dupa functie.
Odata aflat in meniu, operatorul va sti ca toate item-urile vor
apela o forma, vor rula un raport, etc.
Alternativ, un meniu poate contine toate functiile de lucru
pentru procesarea ordinelor, altul pentru clienti, etc. In acest
caz, trebuie sa fie clar ce face/ruleaza fiecare item din meniu.
- Nu exista o limita in numarul de item-uri intr-un meniu.
Exista o limita in numarul de item-uri afisate. Operatorul poate
sa faca scroll la item-urile din afara ecranului, dar utilizarea
meniului poate deveni obositoare pentru un operator care trebuie
sa faca acest lucru de multe ori.
- Incercati sa limitati imbricarea meniurilor la un numar de
4 nivele. Structura poate deveni foarte complexa. Unul din
motivele pentru folosirea meniurilor este simplificarea
lucrurilor pentru operator!
- Intr-un meniu listati item-urile in ordinea in care
trebuiesc executate. De exemplu, pentru a tipari un raport
trebuie mai intai executat.
- Considerati utilizarea meniului background care da acces
rapid la item-urile frecvent utilizate. Nu uitati problema
securitatii in meniurile background - odata ce aveti acces puteti
utiliza TOATE item-rile.
Planificarea categoriilor de privilegii (roluri)
Toti utilizatorii trebuie sa fie atasati la unul sau mai
multe categorii de privilegii numite roluri. Accesul la item-
urile meniului este controlat de apartenenta la rol. Fiecare rol
este identificat prin-un nume asignat lui de administratorul de
sistem la creare. Accesul rolului la un item din meniu este
stabilit in timpul definirii item-ului (aceasta este facut la
nivel de item).
Alternativ in versiunea curenta de SQL*Mennu (versiunea
5.0.11.3.0) este necesara specificarea accesului doar pentru
radacina meniului. Fiecare item aflat mai jos in structura va
'mosteni' accesul. Fiecare user care a ajuns asa departe poate
utiliza acel item.
La proiectarea unei aplicatii trebuie considerati
utilizatorii potentiali ai sistemului, apoi acestia trebuie
grupati. Criterii folositoare pentru a identifica grupurile de
utilizatori pot fi:
- Nevoia de informatie
- Drepturile de a accesa informatia
- Cunostintele tehnice ale diferitilor utilizatori
Acesti utilizatori pot fi inregistrati in rolul (sau
rolurile) corespunzator.
Roluri si caracteristici speciale
Cand un rol este definit trebuie decis ce roluri poate sa
utilizeze:
- Meniu background
- Accesul la cheia functionala pentru sistemul de operare
- Modul debug
Scenariul aplicatiei meniu
In urmatorul capitol veti construi o aplicatie care
incorporeaza urmatoarele componente:
Componenta Nume fisier
Forma inregistrarii ordinelor order.frm
Forma intretinerii listei preturilor pricehis.frm
Forma cu detalii despre clienti customer.frm
Raport despre lista clientilor client.sql
Raport despre disponibilitatea stocurilor stock.sql
Raport despre costul ordinelor ordcost.sql
Tabelul de mai jos arata componentele cu drepturile cerute
pentru grupul utilizatorului. Toate rapoartele sunt disponibile
pentru citire si tiparire. In prezent toate formele vor folosi
meniul implicit al aplicatiei - mai tarziu veti integra alte
meniuri in unele din aceste forme.
Componenta Administratie Manageri Proiectanti de sistem
Order X X X
Pricehis X X
Customer X X X
Client X X X
Stock X X X
Ordcost X X X
.
Toti utilizatorii pot lista propriul director. Managerii si
proiectanti de sistem pot rula interogari "ad-hoc" in SQL*Plus.
Toate acestea sunt aratate in diagrama arborelui meniului.
Specificarea item-urilor meniului
Intr-un meniu puteti avea cate item-uri doriti. Aceste item-
uri pot invoca: