Mecanismele programarii în Visual FoxPro Programarea în Visual FoxPro implica scrierea unor secvente de cod: instructiuni sub forma de comenzi, functii sau operatii pe care Visual FoxPro le poate interpreta. Acestea pot fi introduse în: - fisiere de programe; - ferestre de cod pentru evenimente sau metode în cadrul proiectantului de formulare (Form Designer) sau al proiectantului de clase (Class Designer); - ferestre procedurale în cadrul proiectantului de meniuri (Menu Designer); - ferestre procedurale în cadrul proiectantului de rapoarte (Report Designer).
Crearea de programe
- 1. în Project Manager se selecteaza optiunea Programs din fila Code; 2. se alege comanda New - 1. se alege comanda New din meniul File 2. din caseta de dialog New se alege Program
3. se alege New File.
- în fereastra Command se foloseste comanda MODIFY COMMAND MODIFY COMMAND [FileName | ?] Visual Fox Pro va deschide o noua fereastra, în care se pot edita instructiunile programului.
Salvarea programelor
- din meniul File se alege Save - daca se salveaza un program creat în Progect Manager , acesta este automat adaugat proiectului.
Modificarea programelor
Înainte de a modifica un program, acesta trebuie redeschis prin una din urmatoarele metode: - pentru programele cuprinse într-un proiect, se selecteaza în Project Manager si se alege comanda Modify - în meniul File se alege comanda Open. Din lista Files of Type se alege Program, se selecteaza fisierul de modificat si se alege comanda Open. - Se foloseste comanda MODIFY COMMAND în care se specifica numele programului sau parametrul “?”.
Rularea programelor
- daca programul este cuprins într-un proiect, se selecteaza din Project Manager si se alege comanda Run. - Din meniul Program se alege comanda Do - Se foloseşte butonul de execuţie din bara de instrumente - în fereastra de comenzi se foloseste comanda DO DO ProgramName1 | ProcedureName [IN ProgramName2] [WITH ParameterList]
Conceptele de baza ale programării Variabile. Macrosubstituţia. Crearea unei variabile sau modificarea valorii acesteia se face prin una din metodele următoare: (1) memvar = expr Exemplu: msal=1000 mdata=date() (2)STORE expr TO lista var O tehnica speciala de lucru cu variabile o reprezintamacrosubstitutia, prin care continutul unei variabile de tip sir de caractere este tratat ca numele altei variabile sau alt element FoxPro (câmp al unei baze de date, denumire fişier). Macrosubstituţia functionează ca şi cum în locul variabilei respective ar fi pus şirul de caractere conţinut de aceasta, fără apostrofurile delimitatoare. Operatorul de macrosubstitutie este &. ( && indică un comentariu) Exemplu:1. a=”var” var= ”Continutul variabilei var” ? a && se afisaza var ? &a && rezultatul afisarii este Continutul variabilei var ? var && rezultatul afisarii este Continutul variabilei var Obs.: Dezavantajul este ca apare o problema de performanta pentru compilator, in sensul ca linia pe care apare, trebuie compilata “din mers” in momentul rularii.
Comenzi pentru afişarea variabilelor de memorie existente la un moment dat:
LIST / DISPLAY MEMORY [NOCONSOLE][TO PRINTER [PROMPT]| TO FILE ]
Manipularea datelor a) Operatori Operatoriiutilizati pentru a crea expresii în Visual FoxPro sunt operatori aritmetici, operatori relationali, operatori logici, operatori specifici şirurilor de caractere: concatenare (+,-) apartenenta $, etc, operatori specifici datelor calendaristice: adunare sau scadere numar de zile dintr-o data calendaristica, compararea a doua date. Exemplu: 1. Fie urmatoarele valori de tip caracter stocate în variabilele v1 si v2: v1= “Univ. ” şi v2=“Stefan Cel Mare” Expresia: ? v1+v2 va avea ca efect afişarea pe ecran a valorii “ Univ. Stefan Cel Mare” 2. Daca variabilele v1 si v2 au valorile următoare: v1= “ Str. Univ. ” şi v2=21 Expresia: ? v1+v2 va avea ca efect afisarea pe ecran a unui mesaj de eroare.
b) Comenzi Fiecare comandă determină executarea unei acţiuni. Sintaxa generala a unei comenzi este: Verb< clauza >.. Unde: verb indica acţiunea ce trebuie executată iar clauzele sunt opţionale si furnizează informaţii suplimentare legate de modul cum se va executa actiunea Daca o comanda este scrisa pe mai mult de o linie, atunci la sfarsitul fiecarei linii intermedare se va plasa simbolul “;”.
1.Instructiuni (comenzi) de intrare-iesire
Sunt instructiuni de afisare si instructiuni pentru citirea de la tastatura.
a) Instructiuni de afisare. Aceasta categorie de comenzi cuprinde urmatoarele instructiuni: (1)? Expr1 [PICTURE Cod_format] | [FUNCTION Cod_format] |[AT nColumn] [FONT Nume_font [,Dimens_Font] Efect: Afiseaza, pe ecran, valorile uneia sau mai multor expresii Visual FoxPro valide sau le tipareste la imprimanta, daca SET PRINTER este pe ON , conform valorilor clauzelor PICTURE, FUNCTION,etc. Obs.: - clauza AT defineste coloana unde se afiseaza ;
b) Instructiuni de citire de la tastatura. (1) ACCEPT [ ] TO Se afiseaza pe ecran valoarea dupa care se asteapta introducerea unui sir de caractere, de la tastatura, ce se atribuie variabilei de memorie .
(2) INPUT [<cExpr> ] TO Se afiseaza pe ecran valoarea dupa care se asteapta introducerea unei expresii de la tastatura, a carei valoare se atribuie variabilei de memorie . Obs.: - comanda cere obligatoriu introducerea unei expresii; - pentru introducerea constantelor de tip sir sau data calendaristica se vor folosi delimitatorii specifici (“,‘,[ ], resp. {}).
-transformarea şirurilor de caractere in valori numerice VAL(cExpr) ANEXA 2Instrucţiuni (comenzi) de configurare
Instructiuni pentru controlul formatului datei calendaristice SET CENTURY ON/OFF / validează, respectiv invalidează afişarea anului pe patru digiţi SET DATE TO DMY|MDY| BRITISH|FRENCH| GERMAN – stabileşte formatul de afişare a datei calendaristice Instructiuni pentru controlul formatului de afişare al ceasului sistem: SET CLOCK ON | OFF – validează/invalidează afişarea ceasului SET CLOCK TO [,
]- stabileşte poziţia pe ecran în care se va afişa ceasul SET HOURS TO [12 | 24] – stabileşte formatul de afişare al orei Diverse instrucţiuni de configurare SET BELL ON/OFF – validează/invalidează alarma sonoră a mediului SET CARRY ON/OFF – validează/invalidează păstrarea valorilor din înregistrarea curentă pentru o nouă înregistrare introdusă prin una din comenzile INSERT, APPEND sau BROWSE SET DATABASE TO [NumeBD] – stabileşte baza de date curentă SET DEFAULT TO [Specificator_director] – stabileşte directorul curent SET DELETED ON/OFF – invalidează/validează utilizarea înregistrărilor marcate pentru ştergere în comenzi ulterioare SET ESCAPE ON/OFF – validează/invalidează întreruperea execuţiei unui program sau a unei comenzi la apăsarea tastei ESCAPE SET EXCLUSIVE ON/OFF – stabileşte dacă fişierele tabel vor fi deschise pentru uzul exclusiv sau partajat într-o reţea SET LOCK ON/OFF – validează/invalidează blocarea automată a tabelelor pentru anumite comenzi. SET PATH TO [lista_cai_de_cautare] – stabileşte o listă a căilor de căutare pentru fişiere SET TALK ON/OFF – validează/invalidează afişarea rezultatelor comenzilor Visual FoxPro