CATEGORII DOCUMENTE |
O afisare simpla pe ecran se face prin instructiunile:
? ?? expr_1,expr_2
Un singur ? are ca efect trecerea la o linie noua inaintea unei afisari.Daca nu se specifica nici o expresie, va fi afisata o linie goala.Virgula care separa expr_1,expr_2, are ca efect separarea printr-un spatiu a rezultatelor afisate.
Doua ?? au ca efect afisarea pe aceeasi linie, in pozitia curenta de pe ecran.
In cazul folosirii instructiunii de mai sus, la umplerea cu informatie,ecranul este defilat.
Pentru a permite un control eficient al afisarii se utilizeaza instructiunea:
@ lin,col SAY expr PICTURE sablon FUNCTION cod
Se va evalua expresia expr si rezultatul se va afisa in linia si coloana indicate pe ecran (daca este activ SET DEVICE TO SCREEN) sau la imprimanta (daca este activ SET DEVICE TO PRINTER).
Prin aceasta instructiune ecranul poate fi gestionat dinamic, prin cresterea numarului de linie pentru afisare (lin=lin+1).Deasemenea, afisarea informatiilor pe ecran se poate face in orice ordine, deoarece ecranul este considerat ca fiind “adresabil”, in sensul ca fiecare caracter are coordonatele linie si coloana bine stabilite.Gestiunea dinamica a ecranului este favorizata de functiile sistemului COL() si ROW() care returneaza coordonatele pozitiei curente a cursorului pe ecran.
Exemplu:
@ 10,20 say “Acesta este un text”
@ row ( ) +1,0 say “Text pe linia urmatoare”
@ row ( ) ,col ( ) +10 “scriu pe aceeasi linie”
In forma @ lin , col SAY expr, instructiunea permite numai afisarea sirurilor de caractere.Celelalte tipuri de date (numerice,logice,date calendaristice), trebuie trasformate inainte de afisare in siruri de caractere.
La tiparire poate fi utilizat un sablon sau o functie de conversie sau ambele. Un sablon poate contine si coduri ale functiilor de conversie caz in care incepe cu @ dar o functie de conversie nu poate contine decat codurile proprii.
Sablonul specificat dupa clauza PICTURE poate contine orice caracter ; numai cele care vor fi prezentate in continuare au un rol activ in afisarea sau in preluarea datelor .Daca in sablon sunt incluse si alte caractere, acestea se afiseaza.
Cod in sablonSemnificatia
APermite doar litere.
L Permite numai valori logice.
N Permite numai litere si cifre.
X Permite orice caracter.
Y Permite doar valori logice Y,y,N,n.
9 Permite doar cifre si semn algebric.
# Permite cifre ,semn si spatiu.
Converteste literele mici in litere mari.
$ Afiseaza simbolul monetar stabilit prin SET.
0 Zerourile de la inceputul numerelor se inlocuiesc cu *.
punct) Stabileste pozitia punctului zecimal.
, (virgula) Stabileste reprezentarea pe grupe a numerelor.
Codurile functiilor de conversie sunt prezentate in tabelul urmator:
Codul functiei Semnificatie
A Admite numai caractere alfabetice.
B Aliniazala dreapta numerele afisate.
C Scrie CR(CREDIT) dupa un numar pozitiv.
D Utilizeaza formatul american pentru o data.
ICentreza un text.
JAliniaza la stanga un text.
L Transforma spatiile din fata unui numar in zerouri.
Sn Limiteaza lungimea de afisare la n caractere;
Se permite astfel defilarea pe orizontala in interiorul campului.
T Elimina spatiie nesemnificative.
X Scrie DB(DEBIT) dupa numerele negative.
Z O valoare 0 este tiparita prin spatii.
( Numerele negative se scriu intre paranteze.
! Converteste literele mici in litere mari.
^ Afiseaza numerele cu notatia stiintifica.
$ Afiseaza numerele in format monetar.
Exemplu:
@ 10,10 say “Hello!” PICT “@!”
@ 12,10 say 1234. 25 FUNCTION “$”
@ 14,10 say 1235. 25
PICT “9999999.99” FUNCTION “$”
CITIREA DATELOR DE PE ECRAN
Programatorul poate sa introduca date cu ajutorul instructiunilor de afisare concatenate cu instructiuni de citire.Citirea datelor se face de la tastatura , (prin tastarea lor); ele apar in ecou pe ecran si sunt transferate unor variabile de memorie definite corespunzator de utilizator.
Sintaxa instructiunii de initiere a procesului de citire de la tastatura este:
@ lin,col SAY “ text” GET variabila
Efectul instructiunii este afisarea pe ecran a textului dintre ghilimele pe linia lin
Si in coloana col si initierea procesului de citire a variabilei variabila mentionata dupa GET.In program pot fi mai multe asemenea instructiuni , succesuve sau nu.Citirea se realizeaza de fapt numai la intalnirea instructiunii READ care are ca efect citirea tuturor varibilelor specificate prin toate optiunile GET anterioare ei . Utilizatorul va trebui sa tasteze valori pentru aceste variabile.Textul dintre ghilimele are rol explicativ, pentru ca utilizatorul sa cunoasca in orice moment ce fel de date se introduc .
Exemplu:
CLEAR
SET TALK OFF
@ 1,1 to 23,79 DOUBLE
@ 2,3 say “B.B. Computer”
@ 2,50 say padl (“Curs FAP1, 29)
@ 5,1 say padc (“TEST MODUL 4 – FOXPRO”,77)
@ 7,5 to 20,75
*identificare cursant
nume=space (15)
prenume=space(20)
@ 10,8 say “ Nume :” get nume
@ 11,8 say “Prenume:” get prenume
read
In exemplul de mai sus, se initializeaza variabilele de memorie cu spatii, apoi se face initializarea citirii lor folosind instructiunea GET si in final se face citirea efectiva prin instructiunea READ.
Instructiunea de citire poate sa impuna formatul variabilei,limitele in care trebuie sa fie cuprinsa variabila precum si alte conditii de validare a datelor introduse.O forma mai generala a instructiunii GET este:
@ lin,col [SAY expr_1 [PICTURE sablon_1][FUNCTION cod_1]]
GET variabila [PICTURE sablon_2 FUNCTION cod_2]
[DEFAULT expr_2][MESSAGE expr_car1]
[RANGE expr_3,expr_4]
[VALID expr_log1[ERROR expr_car2]][WHEN expr_log2]
[COLOR SCHEME expr_num COLOR lista culori]
Daca se utilizeaza GET cu SAY in fata ,se va introduce automat un spatiu intre expresia tiparita prin SAY si pozitia din care incepe GET.
Clauzele PICTURE si FUNCTION au aceeasi semnificatie cu cea prezentata pentru SAY.
Clauza Semnificatia
DEFAULT expr_2 Daca variabila specificata dupa GET, nu exista, ea va fi creata si initializata cu valoarea specificata prin expr_2.DEFAULT nu are efect asupra campurilor dintr-un fisier.Daca nu exista clauza DEFAULT si variabila specificata dupa GET nu exista, va apare o alerta cu mesajul “Variable <variabila> not found”.Daca DEFAULT apare dar variabila specificata dupa GET exista, DEFAULT este ignorat.
MESSAGE expr_car1Are ca efect afisarea mesajului expr_car1 pe ultima linie a ecranului, atunci cand cursorul este pozitionat pe GET-ul respectiv.
RANGE
Expr_3,expr_4Poate fi utilizat cu variabile de tip caracter, numeric sau data pentru a specifica un domaniu de valori permise.Daca valorile introduse nu se incadreaza in domeniul precizat,va apare un mesajde eroare care va indica domeniul permis.verificarea domeniului se face doar in cazul modificarii valorii variabilei precizate prin GET; daca ea ramane neschimbata(se tasteaza ENTER),clauza RANGE nu are efect.
WHEN expr_log2 Permite sau nu accesul la GET in functie de rezultatul evaluarii expresiei logice expr_log2.Daca expresia returneaza (.T.), este permis accesul la GET; in caz contrar cursorul se deplaseaza pe GET-ul urmator.
VALID expr_log1Permite validarea intrarii .Expresia logica expr_log1 este evaluata la fiecare iesire dintr-un GET .Daca dupa evaluare expresia logica returneaza (.T.) , valoarea introdusa este considerata corecta si se trece la citirea unei noi valori.In caz contrar, valoarea introdusa este considerata incorecta , va apare un mesaj care va cere sa introduceti o alta valoare dupa ce tastati un SPATIU (sa dispara mesajul de eroare), si nu se avanseaza la o alta citire decat dupa introducerea unei valori corecte sau tastand ESC .
ERROR expr_car2 Permite specificarea de catre utilizator a mesajului de eroare care se va afisa atunci cand conditia specificata dupa clauza VALID este falsa.
COLOR SCHEME
Expr_num COLOR
Lista_culori Daca nu se include clauza COLOR , culorile folosite de @ GET sunt determinate de schema de culori pentru fereastra principala FOXPRO care este ecranul.
Se pot specifica explicit culorile fie precizand numarul unei scheme de culoare prin clauza COLOR SCHEME fie indicand un set de perechi de culori prin clauza COLOR.
In tabelul urmator sunt prezentate perechile de culori folosite de @ GET.
Perechea de culori Zona afectata
1 zona de afisare SAY
2 zona de editare
5mesajul din clauza MESSAGE
6zona de editare a GET-ului selectat
Exemplu:
Virsta=0
An_nastere=0
Rasp=.F.
@ 5,5 say “Introduceti virsta ” get virsta;
pict “999” range 0,120
@ 6,5 say “Anul nasterii:” get an_nastere;
pict “9999” valid an_nastere<=year(date ( ) )
@ 7,5 say “Raspunsurile sunt corecte? (Y/N) “;
get rasp pict “Y”
read
Instructiunea READ ,activeaza obiecte create prin @ GET.
Cand READ este activa ,puteti tasta ENTER,TAB sau sagetile sus-jos pentru a trece de la un obiect la altul Mutarea de la un obiect la altul se face in ordinea in care acestea sunt plasate in program.Cand lucrati cu mouse-ul,
puteti selecta un obiect printr-un click pe mouse dupa ce v-ati pozitionat pe obiectul dorit.
Introducerea textului intr-un obiect GET ,respecta regulile de editare a textelor cunoscute.Iesirea dintr-un READ se face in mai multe feluri:
1. Deplasand cursorul in fata primului GET ,
2. Deplasand cursorul dupa ultimul GET ,
3. Tastand ESC ,
4. Tastand CTRL+W.
Pentru a anula initierea proceselor de citire de variabile ,proces lansat prin secvente de GET-uri ,programatorul poate folosi instructiunea CLEAR GETS.Acesta are ca efect invalidarea tuturor secventelor @ GET ,anterioare ei .Pot fi initiate in continuare noi procese de citire de variabile.
Exemplu:
Program pentru introducerea datelor pprin dialog cu utilizatorul intr-o baza de date MARFURI ,.cu structura:
COD_MARFA Numeric11
DEN_MARFA Character 30
UMCharacter 3
PRETNumeric11 2
INFO Character 40
Imaginea ecranului pentru introducerea de date este cea din figura urmatoare:
Program ADAMARFA. PRG -- adauga marfuri in catalog
set talk of
set color of scheme 1 to w+/b,n/bg
@ 0,0 clear to 24,79
@ 0,0 to 3,79 double
@ 1,2 say “Curs FOXPRO”
@ 2,1 say padc(“Exemplu – Program adăugare ; articole intr-o BD”,78)
USE mărfuri
adaug=.t.
do while adaug
set color of scheme 1 to n/bg,w+/r
@ 4,0 clear to 20,79
@ 4,0 to 20,79
@ 5,2 say “Adăugare mărfuri”
mcodm=0
mdenm=space(30)
minfo=space(40)
mun=space(3)
mpret=0.00
set color of scheme 1 to w+/b,n/bg
@ 6,11 clear to 13,69
@ 6,11 to 13,69
@ 6,25 say “Informatii despre marfă”
Comenzi care folosesc operatori relationali
Copy to – unde se copiaza din tabela activa
Fields < ce cimpuri > for < conditie de copiere>
While<pana cand>Tipe>extensia unde copiez>
OBS.1:baza de date din care se ia informatiile trebuie deschise.Regasirea de date in mai multe tabele si concentrarea lor intr-o noua tabela se face asa:
SELECT*/<campuri>FROM<tabelele de unde se iau toate campurile sau doar cele numite>[INTO<noua tabela unde se pun >TO FILE<nume fisier unde se pun >/Toprinter?TO screen]
WHERE<filtrul
de selectie al inregistrarilor>[
Pentru
legarea a doua tabele acestea trebuie deschise in doua zone diferite si
indexate dupa un
JOIN WITH< tabela din alta zona , nu cea curenta>TO< tabela unde se pun campurile din cele doua tabele conectate>[FOR <campul comun din cea curenta = tabela_din_cealalalta _zona;campul comun>] [FIELDS< campurile care se copiaza , iar cele care nu se afla in zona curenta se specifica si denumirea bazei de date>]
Sortarea unui tabel se face asa:
SORT TO<numele_tabelei_care va fi deja rezultatul sortarii>ON<campul de sortare >[/ A] [_D] [C] [ASCENDING] [DESCENDING] [FOR<conditie>] [WHILE<pana cand>] FIELDS<campurile care se pun la tabela ce va fi rezultatul sortarii>]
Totalizarea unui camp (indexat pentru a fi unic ),adica insumarea valorilor din
TOTAL TO<numele tabelei unde se pune totalul>ON<campul indexat pentru ca valorile sa fie unice>[FIELDS<campurile din tabela initiala care se totalizeaza>][FOR<conditii de totalizare>][WHILE<pana cand>].
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 204
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved