CATEGORII DOCUMENTE |
Meniuri in VFP
Din perspectiva contactului cu utilizatorul, punctul de plecare sau poarta catre functionalitatea practica a unei aplicatii, prin obiecte cum sunt formularele sau rapoartele, presupune existenta unui element de interfata care sa concentreze si sa structureze caile de acces in "universul" sistemului. In etapa de dezvoltare, instrumentul Project Manager asigura navigarea si accesul la structurile interne ce formeaza aplicatia. In etapa de exploatare, cel mai des folosite instrumente de acces si navigare catre sau prin structura functionala a aplicatiei sunt meniurile insotite eventual de bare de instrumente personalizate. Meniul integreaza de fapt toate celelalte elemente de interfata si defineste pentru utilizator trasaturile sau caracteristicile generale ale aplicatiei.
1. Crearea meniurilor folosind generatorul de meniuri al Visual FoxPro
Pentru construirea unui meniu nu ne vom "adanci" in sintaxe de comenzi specifice, ci vom merge pe o cale mult mai simpla, propusa de mediul VFP prin instrumentul Menu Designer (asistentul de proiectare a meniurilor). Este adevarat, la "inceputurile' FoxPro-ului, singura modalitate de a defini optiunile unui meniu, modul de structurare a acestora si actiunile ce urmau sa aiba loc la selectarea uneia dintre ele era scrierea unui program in care se invocau comenzi de genul DEFINE PAD, DEFINE POPUP, DEFINE BAR, ON SELECTION BAR si altele de acest gen. Mai tarziu a fost integrat in FoxPro un stramos al generatorului de meniuri de astazi si anume Menu Builder, a carui sarcina era crearea programului-sursa pentru definirea meniului si compilarea lui. in Visual FoxPro, instrumentul Menu Designer are aceeasi sarcina ca si predecesorul lui, rezultatul final concretizandu-se in principal intr-un fisier cu extensia .MPR (programul--sursa) si un fisier .MNX (forma compilata).
Procesul de creare a unui meniu pentru intreaga aplicatiei sau doar pentru o componenta a ei poate fi structurat in cinci etape:
1. Planificarea si proiectarea meniului, adica luarea deciziei asupra structurii generale - sau, altfel spus, "care sunt submeniurile si optiunile acestora ?'.
2. Crearea efectiva a meniurilor si submeniurilor, adica declararea, folosind Menu Designer, a titlurilor optiunilor din bara principala, a optiunilor corespunzatoare submeniurilor s.a.m.d.
3. Specificarea actiunilor ce vor fi declansate prin selectarea optiunilor meniului, care ar putea insemna afisarea formularelor, rapoartelor sau lansarea in executie a unor proceduri ce realizeaza sarcini specifice. In plus, se poate include o secventa de cod pentru initializarea mediului inainte de activarea propriu-zisa a meniului sau a unei secvente de cod pentru restabilirea - "curatarea' - mediului dupa parasirea meniului (dezactivarea/stergerea lui din memorie).
4. Generarea programului (a secventei de comenzi DEFINE PAD, DEFINE POPOUP, DEFINE BAR, ON SELECTION BAR corespunzatoare componentei meniului din cadrul proiectului aplicatiei).
5. Rularea si testarea programului generat anterior.
1.1. Planificarea meniului aplicatiei
Prin urmare, inainte de a incepe propriu-zis construirea meniului aplicatiei, este recomandabil, la fel ca in cazul formularelor sau rapoartelor, schitarea submeniurilor principale si optiunilor acestora, din cel putin doua motive: (1) structurarea optiunilor din meniu in asa fel incat sa reflecte o anumita logica functionala, usor de inteles din partea utilizatorilor care vor exploata efectiv aplicatia; si (2) luarea in considerare a tuturor functiilor aplicatiei, pentru a se evita omiterea accidentala a unei componente, compilate si deci parte integrata in sistem, dar imposibil de accesat.
Fara a avea pretentia ca ar fi cea mai buna structura functionala (o mare importanta aici o are partea de analiza si proiectare care ar trebui sa evidentieze principalele functii sau "cazuri de utilizare' ale sistemului), propunem urmatorul format pentru meniul principal al aplicatiei : □ meniul-bara va fi compus din urmatoarele submeniuri:
. Nomenclatoare - care va permite accesul catre formularele ce actualizeaza datele din tabelele de referinta cum sunt Persoane, Clienti sau Produse;
. Operatiuni - care va permite accesul la formularele responsabile de principalele tranzactii economice deservite prin aplicatie, adica facturari si incasari;
. Liste/Informatii - care va cuprinde o serie de optiuni prin care utilizatorul va avea acces la informatiile necesare din sistem. Prin urmare, vor fi invocate in primul rand rapoartele predefinite (parametrizate sau nu) sau alte obiecte grafice cum ar fi, de exemplu, diagramele tip chart;
. Administrare/Configurare - care va fi alcatuit dintr-o serie de optiuni ce vor avea legatura cu intretinerea bazei de date (crearea copiilor de siguranta/arhivarea si refacerea/restaurarea bazei de date si indecsilor - problema acuta in VFP) si configurarea mediului software/hardware in care rezida aplicatia (retea, imprimanta etc);
. Asistenta - care va constitui o punte catre sistemul de help al aplicatiei;
. Iesire - care va desemna caile prin care se poate parasi aplicatia.
Schema de baza a meniului principal
ar putea arata ca in figura 1.
Nomenclatoare |
Operatiuni |
Liste/Inform. |
Admin./Config. |
Asistenta |
Iesire |
Persoane |
Facturari |
Lista clienti |
Admin. BD |
Continut si index | |
|
Produse |
Incasari |
Lista facturi |
Config. Retea |
|
|
Clienti |
|
Raport vanzari |
Config. Imprimanta |
|
|
|
|
Alte informatii |
|
|
Figura 1. Schema initiala a meniului principal
1.2. Crearea/definirea meniului principal si submeniurilor corespunzatoare
Lansarea generatorului de meniuri al VFP se poate face in doua moduri. Pe de o parte, din Project Manager se poate selecta din tab-ul Other nodul Menus (in cazul in care se doreste modificarea unui meniu deja creat, se expandeaza acest nod si se selecteaza numele acestuia) si apoi se "apasa' butonul New (sau Modify, pentru un meniu existent). Pe de alta parte, se poate executa comanda CREATE MENU din fereastra de comenzi a VFP.
Atentie! Din fereastra ce se lanseaza dupa apelarea butonului New se va merge pe varianta Menu.
Lucrul cu instrumentul Menu Designer este relativ simplu, principala dificultate (oarecum) fiind dispunerea viitoarelor optiuni din bara principala intr-o coloana verticala si nu orizontala (vezi figura 2).
Figura 2. Lansarea instrumentului Menu Designer
Definirea efectiva a meniului incepe mai intai cu bara principala (Nomenclatoare, Optiuni, Liste), care va inlocui in momentul executiei meniul sistem (File, Edit, View.). Astfel, in coloana Prompt a Menu Designer-ului se vor consemna titlurile care vor desemna optiunile ce vor forma meniul principal, iar in coloana Result se va specifica ce actiune va avea loc ca urmare a selectiei fiecarei optiuni. Lista derulanta din fiecare linie a coloanei Result poate lua una dintre urmatoarele valori:
. Submenu - permite crearea unui submeniu care va fi activat in urma selectiei respectivei optiuni (in coloana din dreapta va aparea un buton Create, prin "apasarea' caruia se va deschide calea catre specificarea unui submeniu);
. Command - permite specificarea in coloana din dreapta a unei comenzi VFP obisnuite, care va fi executata in urma selectarii optiunii curente;
. Procedure - permite specificarea codului-sursa pentru un program VFP care va fi lansat in executie ca urmare a selectarii respectivei optiuni (in coloana din dreapta va aparea un buton Create, actionarea acestuia determinand lansarea unei ferestre de editare cod-sursa);
. Pad Name - numele intern al unei optiuni.
Revenind in contextul exemplului nostru, in coloana Prompt se vor specifica titlurile: Nomenclatoare, Operatiuni, Liste/Informatii, Admin/Configurare, Asistenta, Iesire. Pentru toate aceste titluri se va specifica drept rezultat Submenu, cu exceptia optiunii Iesire, pentru care se va specifica Command, iar pe coloana a treia se va scrie deocamdata instructiunea SET SYSMENU TO DEFAULT, din ratiuni de simplificare a procesului de testare-depanare. Aceasta instructiune determina revenirea la meniul principal al sistemului Visual FoxPro. Ulterior, in faza finala, se poate inlocui aceasta comanda cu instructiunea QUIT, care determina parasirea efectiva si imediata a mediului VFP.
Trecerea pe nivelul urmator in definirea unei optiuni din meniul-bara se face apasand butonul CREATE sau EDIT (pentru revenirea intr-un submeniu creat anterior). In lista combinata situata in coltul dreapta-sus a Menu Designer-ului si etichetata Menu Level va aparea numele submeniului ale carui optiuni sunt create/editate la un moment dat. Aceasta lista permite revenirea pe nivelul (nivelurile) anterioare. Prin urmare, navigarea printre submeniurile aplicatiei se poate realiza in Menu Designer prin butoanele CREATE/EDIT (in adancime) si prin lista Menu Level (inapoi) - vezi figura 3.
Figura 3. Calea de navigare de pe un nivel superior pe un nivel inferior (meniu - submeniu) si invers
Tinand cont de aceste precizari, se pot implementa cu usurinta in Menu Designer specificatiile din tabelul 1.
Tabelul 1. Specificatii pentru meniul aplicatiei
Titlu optiune sau submeniu |
Rezultat |
|
Meniul-bara |
Submenu |
|
Nomenclatoare |
Submenu |
|
Persoane |
Command |
do form frmPersoane |
Produse |
Command |
do form frmProduse |
Clienti |
Command |
do form frmClienti |
Operatiuni |
Submenu |
|
Facturari |
Command |
do form FrmLiniiFact |
Incasari |
Command |
WAIT WINDOW 'Under construction' |
Liste/Informatii |
Submenu |
|
Lista clientilor |
Command |
report form rep_clienti preview |
Lista facturilor |
Command |
report form rep_facturi_clienti preview |
Lista vinzarilor pe clienti |
Command |
report form rap_dinamic preview |
Informatii din facturi |
Command |
do form frmtree_list |
Administrare/Configurare |
Submenu |
|
Administrare BD |
Submenu |
|
Refacere indecsi |
Command |
do refacere_indecsi |
Verificare indecsi |
Command |
do restrictii_referentiale_macro |
Copie de siguranta BD |
Command |
WAIT WINDOW 'Under construction' |
Restaurare BD |
Command |
WAIT WINDOW 'Under construction' |
Configurare retea |
Command |
WAIT WINDOW 'Under construction' |
Configurare imprimanta |
Submenu |
|
Imprimanta |
Bar # |
_mfi_sysprint H ]gkfjkdghl.;mfi sysprint |
Pagina |
Bar # |
_mfi_pgset |
Asistenta |
Submenu |
|
Continut si index |
Command |
HELP |
Despre |
Command |
WAIT WINDOW 'Under construction' |
Iesire |
Command |
SET SYSMENU TO DEFAULT |
Se poate trage cu usurinta concluzia ca specificatiile de mai sus sunt caracteristice unei etape intermediare in dezvoltarea aplicatiei; optiunile cu rezultatul WAIT WINDOW "Under Construction" semnifica faptul ca "inca se mai lucreaza' si pot fi incluse eventual intr-un prototip de evaluare-testare din partea utilizatorilor, nicidecum in faza finala de livrare.
1.3. Cai suplimentare de acces de la tastatura la optiunile din meniu si separarea optiunilor in cadrul submeniurilor
In faza de proiectare-planificare, pentru o impartire judicioasa a optiunilor, se poate cere impartirea acestora in grupuri chiar in interiorul submeniului din care fac parte, fara a se recurge la noi subniveluri (nu se recomanda crearea a mai mult de trei-patru niveluri
consecutive). De asemenea, pentru apelarea rapida a optiunilor celor mai des folosite se recomanda sa li se asocieze combinatii de taste cu rol de chei de acces.
Accesul optiunilor din meniu se poate face in doua moduri: (a) la nivelul submeniului si (b) shortcut-uri de la tastatura, fara sa fie necesara navigarea pana la nivelul submeniului din care face parte optiunea vizata.
Asocierea unei chei de acces a unui submeniu sau optiuni se realizeaza introducand simbolurile "<" inaintea literei care va juca acest rol. Spre exemplificare, vezi figura 4.
Figura 4. Transpunerea unei chei de acces in bara de meniu la "runtime"
Definirea unei combinatii de taste care sa acceseze direct o optiune din meniu, fara sa fie necesara o navigare explicita, se realizeaza astfel (vezi figura 5):
1. Se selecteaza numele optiunii respective (coloana Prompt).
2. Se actioneaza butonul din coloana Options pentru activarea dialogului Prompt Options.
3. Se selecteaza casuta Key Label si se apasa combinatia de taste dorita pentru activarea respectivei optiuni.
4. in casuta Key Text se specifica textul care va insoti in meniu numele optiunii respective.
Figura 5. Crearea unui shortcutde la tastatura si transpunerea "runtime'
Impartirea in grupuri distincte a optiunilor care formeaza un submeniu este posibila introducand in fereastra de editare a Menu Designer-ului a unei optiuni suplimentare pentru care este precizat ca titlu (in coloana Prompt) sirul "-', dupa cum se exemplifica in figura 6.
Figura 6. Separarea optiunilor unui submeniu
1.4. Includerea in meniul aplicatiei a unor submeniuri system
In anumite situatii, pentru definirea unor sarcini specifice ale aplicatiei este necesara "imprumutarea' unor functionalitati proprii sistemului Visual FoxPro. in exemplul nostru, pentru definirea parametrilor de configurare ai imprimantei sau pentru definirea unor parametri referitori la asezarea in pagina este utila invocarea in meniul aplicatiei a optiunilor corespunzatoare din meniul system al mediului Visual FoxPro. in acest sens, daca revenim in tabelul 1, vom observa ca optiunile AdministrareConfigurare->Conf igurare Imprimanta ->Imprimanta si AdministrareConfigurare->Configurare Imprimanta -> Pagina au ca rezultat Bar# cu __mfi_sysprint, respectiv __mfi_pgset.
Figura 7. Invocarea unor meniuri system ca optiuni ale meniului aplicatiei
Cele doua variabile nu reprezinta altceva decat numele intern al optiunilor File->Print si File->Page Setup ale meniului standard VFP (msysmenu).
In MSDN Library - Menu menu, Visual FoxPro system (internal) pot fi gasite numele interne ale tuturor optiunilor si submeniurilor care formeaza meniul system VFP. De asemenea, aceste nume interne pot fi afisate si folosind functia SYS(2013).
1.5. Dezactivarea optiunilor dintr-un meniu
La executie, exista situatii in care este necesara dezactivarea unor optiuni sau submeniuri, sau activarea acestora numai in functie de anumite conditii. in general, acest lucru este util atunci cand se construieste o politica de securitate pentru aplicatie, astfel incat activarea optiunilor care formeaza meniul sa fie facuta in functie de numele utilizatorilor care lucreaza la un moment dat sau in functie de privilegiile/drepturile asociate acestora.
In exemplul nostru, ar fi necesara o astfel de functionalitate pentru a se evita afisarea mesajelor Under construction pe care le-am asociat initial optiunilor aflate inca "in lucru".
Aceasta functionalitate poate fi realizata intorcandu-ne in fereastra Prompt Option apeland-o pentru optiunile vizate sa aiba un asemenea comportament. in aceasta fereastra se poate remarca existenta rubricii Skip For. Daca expresia specificata in aceasta rubrica este evaluata ca fiind .T., respectiva optiune va fi dezactivata; daca insa este evaluata ca fiind .F., optiunea va fi activata (vezi figura 8).
Figura 8. Dezactivarea unor optiuni sau submeniuri
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 4869
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved