CATEGORII DOCUMENTE |
MODUL DE LUCRU PROGRAMAT.CREAREA FISIERELOR .PRG
Crearea fisierelor .prg se realizeaza sciind in ferastra command MODI COMM NUME_FISIER
Procedura apelanta poate beneficia de rezultatele procedurii apelate prin parametrii rezultanti cu comanda: DO < numele fisierului apelat > [ WITH ]
{<ce rezultate transmite la apelant > [ IN< numele fisierului in care se {apeleaza fisierul si in cadrul caruia se executa>]
Obs1: avem parametrii globali:
-de intrare (cei care se prelucreaza si se dau in programul apelant efectiv)
-de iesire (rezultatele care se folosesc in programul apelant si sunt evaluate aici)
*parametrii locali (care nu folosesc in programul principal dar sunt rezultate necesare local)
Parametrii locali sunt definiti in procedura apelanta si contin rezultatele obtinute si nu sunt recunoscute decat in procedura iar comenzile sunt :
{PRIVATE<.lista variabila memorie>
{PRIVATE ALL [LIKE<conditie </ EXCEPT< conditie complementara< ]
Parametrii globali sunt definiti in procedura apelanta si se declara asa :
PUBLIC< lista variabila de memorie >
PUBLIC [ ARRAY ]<numele tabloului >(<nr. de linii , nr. de coloane>)
TRANSFERUL INFORMATILOR INTRE PROGRAME
Pentru a utiliza aceleasi nume de variabile ,atat in programul apelat cat si in programele apelate,programatorul are posibilitatea de a declara variabile private (locale) prin instructiunea:
PRIVATE lista_de_variabile
Sau
PRIVATE ALLLIKE sablonEXCEPT sablon
Instructiunea poate mentiona variabile care se exclud din lista si care sunt deci variabile globale. Optiunea ALL permite definirea tuturor variabilelor ca variabile locale
Pentru ca o variabila sa fie utilizata in acelasi fel de mai multe programe (variabila sa fi purtatoare de informatie intre programele care se apeleaza),ea trebuie sa fie declarata variabila publica printr-o instructiune:
PUBLIC lista_de_variabile
Toate variabilele continute in lista_de_variabiledin declaratia de mai sus devin publice (globale);cade in sarcina programatorului controlul corect al valorilor care se atribuie acestor variabile in cursul derularii programelor.
PROCEDURI
Un caz particular de prgrame sursa sunt acele programe care contin secvente executabile delimitate in proceduri .Din punctul de vedere al editorului de texte ,procedurile se editeaza la fel ca si programele . fisierul de proceduri este un fisier de tip .PRG.
Procedurile sunt delimitate de cuvantul de PROCEDURE urmat de numele procedurii (nume valid FOX PRO,maximul 10 caractere ,litere, cifre si liniuta de subliniere) si se termina prin cuvantul RETURN.Dupa numele proceduri este obligatoriu sa se specifice parametrii procedurii respective .
Lista de parametri contine atat parametrii de apel ai procedurii, care sunt transmisi de la programul apelant, cat si paremetrii care contin valorile pe care le returneaza procedura. In particular procedura poate sa nu returnze nimic ,si poate fi apelata fara parametrii (actioneaza asupra variabilelor globale sau a mediului de lucru .paremetrii procedurii se specifica printr-o instructiune :
PARAMETRES lista _de_parametrii
Orice procedura poate fi apelata numai dupa activarea fisierului care contine procedura.Activarea fisierului de proceduri se face cu instructiunea SET PROCEDURE TO nume fis_procedurii
Lansarea in executie a procedurii se face prin programul apelant asemanator cu lansarea in executie a oricarui program dar este necesara specificarea suplimentara a parametrilor.Paramatrii de apel ai procedurii se specifica la lansare ,astfel :
DO nume procedura [WITH lista_de _parametri]
Numarul de parametrii din declaratia PARAMETER aflata in corpul procedurii trebuie sa fie identic cu numarul de parametrii din instructiunea de apel a procedurii.
Fisierul de proceduri prezentat contine trei proceduri care au numele UNU ,DOI si SALAR.Fiecare procedura are specificata lista de parametrii necesari pentru executia procedurii in cauza si se termina cu instructiunea RETURN.Procedurile se vor apela independent din priogramul principal sau din alte programe ;fiecare declaratie de tip Procedure va reprezenta un punct de intrare in program .Instructiunea Return determina iesirea din fisierul de proceduri ,transferul valorilor spre programul apelant si executia urmatoarei instructiuni ,aflate imediat dupa apelul procedurii.
Programul de mai sus apeleaza proceduirile din fisierul de proceduri.Programatorul poate avea mai multe fisiere de proceduri ,dar la un moment dat numai un singur fisier de proceduri este activ.Orice instructiune de forma :
SET PROCEDURE TO fis_de_proceduri
Inchide fisierul din proceduri anterior deschis si-l activeaza pe cel specificat prin fis_de_proceduri
Fisirul de proceduri se inchide cu una din comenzile :
SET PROCEDURE TO
sau
CLOSE PROCEDURE.
IV. COMENZI PENTRU REALIZAREA GRAFICII
{ DEFINE BOX FROM < coloana stanga > TO <coloana dreapta >
HEIGHT < inaltimea > [ AT LINE < nr. liniei cu care incepe desenarea ariei >]
[ SINGLE/ DOUBLE/ < caractere bordura pentru chenar >]
{@ < linie stanga sus , coloana stanga sus , linie dreapta jos , coloana dreapta jos> BOX < caracterul cu care se face chenarul >
{@< linie stanga sus , coloana stanga sus> TO <linie dreapta jos , coloana dreapta jos >
[ DOUBLE / PANEL / <caracter pentru bordura >]
[ PATTERN < fundal >]
CREAREA MENIURILOR VERTICALE:
{ DEFINE POPUP < nume meniu vertical > FROM < linie stanga sus
coloana dreapta jos>] [ IN [ WINDOW ] < numele ferestrei in care apare meniul > / IN SCREEN ] [ FOOTER < titlu pentru meniu >] [ KEY < combinatia de taste cu care se selecteaza > ] [ MARGINT ] [ MARK < caracterul care apare in fata optiunii cand e selectata > ] [ MESSAGE < mesajul care apare cand selectezi meniul >] [ MOVER ] [ MULTISELECT] [ PROMT FIELD < camp dintr-o baza de date ce va fi meniu> ] [PROMPT FILES LIKE < conditia din ce director , cu ce extensie se iau fisiere ce o sa apara in meniu> ] [ SHADOW ] [ TITLE < titluri in partea superioara a ferestrei > ] [ COLOR SCHEME < nr. schemei > / COLOR < lista de culori > ]
In cadrul meniurilor verticale se definesc meniurile bar astfel :
DEFINE BAR < nr. asignat optiunii din meniu > OF < numele meniului vertical din care mai face parte > PROMPT < mesajul intre ghilimele care apare ca submeniu > [ BEFORE < plasarea meniului bar actual in fata barului cu nr. sau numele spus aici ] [ KEY < combinatie de taste pentru selectie > ] [ MARK < caracterul din fata] [MESSAGE<mesajul care apare la selectia submeniului>] [SKIP[FOR<o coloana prin care este inclusa sau nu optiunea de submeniu in cadrul meniului vertical >][COLOR<lista de culori >COLOR SCHEME<nr. schemei >.]Crearea unui meniu orizontal se face asa:{DEFINE MENU <nume meniu orizontal >[BAR AT LINE<nr. liniei unde imi apare meniul pe ecran >][IN[WINDOW<numele ferestrei unde imi apare meniul >][IN SCREEN][KEY<combinatia de taste cu care se activeaza >][MARK<caracterul care apare in fata lui cind e selectat >][MESSAGGE<un mesaj cind e selectat >][NOMARGIN][COLOR<lipsa de culori > /COLOR SCHEME <schema>In cadrul meniurilor orizontale se definesc submeniurile.; Aplicatii de meniuri
PROGRAM . PRG.
Definire menu linie
Definire pad pad1 of linie prompt “/<cont”at 0,5
Definire pad pad2 of linie prompt “/<note “ at 0,18
Definire pad pad3 of linie prompt “/<abandon” at 0,35
On pad pad1 of linie activate popup popcont
On pad pad2 of linie activate popup popnote
On pad pad3 of linie activate popup popaband
Define popup popcont title “conturi” shadow
Define bar 1 of popcont prompt “<adăugare”
Define bar 2 of popcont prompt “<modificare”
Define bar 3 of popcont prompt “<stergere”
Define bar 4 of popcont prompt “<listare”
Define bar 5 of popcont prompt “listare “ skip
Define bar 6 of popcont prompt “iesire în <FOX”
On selection popup popcont do proced
Define popup popnote title “note” shadow
Define bar 1 of popnote prompt “<adăugare”
Define bar 2 of popnote prompt “<modificare”
Define bar 3 of popnote prompt “<stergere”
Define bar 4 of popnote prompt “<listare “
Define bar 5 of popnote prompt “<listare “ skip
Define bar 6 of popnote prompt “iesire în <FOX”
On selection popup popnote do proced 2
Define popupp popband title “abandon” shadow
Define bar 1 of popband prompt “iesire în <FOX”
Define bar 2 of popband prompt “iesire în” skip
Define bar 3 of popband prompt “iesire în <DOS”
On selection popup popband do proced 5
Activate Menu Line
MENIURI . PRG
Define Menu Fructe
Define pad f1 of fructe prompt ”<deschidere>” mark chr(3)
Define pad f2 of fructe prompt “<modificare>” mark chr(4)
Define pad f3 of fructe prompt “<listare >” mark chr(5)
Define pad f4 of fructe prompt “<adăugare >” mark chr(6)
Define pad f5 of fructe prompt “<iesire>” mark chr (7)
@ 12,5 say “Ati ales”
On selection pad f1 of fructe do deschidere
On selection pad f2 of fructe do modificare
On selection pad f3 of fructe do listare
On selection pad f4 of fructe do adăugare
On selection pad f5 of fructe do iesire
Activate Menu Fructe
Procedure deschidere
Use ?
Return
Procedure modificare
Browse
Return
Procedure listare
List
Return
Procedure adăugare
Append
Return
Procedure iesire
Quit
Return
8.1 MODUL DE LUCRU PROGRAMAT
Atribuirea <variabila>=<expresie>
STORE<valoarea>TO<variabilele ce iau valoarea specificata>
Comenzi de afisare pe ecran
?/??[<expresia ce se evalueaza si rezultatul il pune pe ecran>] [PICTURE<formatul afisajului>] [AT<coloana unde se face afisarea>] [FONT<numele si marimea fontului>] [STYLE<stilul scrisului>].
???<evaluarea expresiei ce se va lista la imprimanta>. Afisarea la anumite coordonate de linie si coloana se face asa:
@<linie,coloana>say<intre ghilimele se pune mesajul ce se va tipari>[PICTURE<cate caractere sa fie si cum>] [FUNCTION<conditie valabila pentru toate caracterele>] [FONT<nume font,marimea>]STYLE<stilul de litera>] [COLOR<lista de culori pentru font>]
Editarea variabilei unde se memoreaza raspunsul la mesajul@…say…de mai sus se face asa:@<linie,coloana>GET<numele variabilei in care se editeaza>analog ca mai sus[ENABLE ?DISABLE] [DEFAULT] [MESSAGE<mesajul la introducerea valorilor>[RANGE<minim,mazim pantru variabila>] [SIZE<inaltime,latime pentru editare>] [VALID<conditia pentru camp>] [ERROR<mesajul de eroarecand nu e indeplinita conditia din campul de la clauza valida] [WHEN<unul di campuri indeplineste o anumita conditie>] [COLOR SCHEME<numar>]
Crearea de liste din elemente ale FOXPRO-ului adica din popupuri sau din baze de date se face asa:structure este identica cu cea de la@…get dar mai apar in plus [FROM < numele tabloului de unde se iau elementele ce se pun in lista >] [RANGE <minim,maxim>| POPUP<nume meniu popup de unde se iau elementele>] obs 3:La meniurile verticale apare clauza ^ in operatiunea FUNCTION si e inclus simbolul intre ghilimele.Crearea de comutatoare,butoane invizibile,butoane radio se poate face cu aceeasi structura ca si @…get…cu deosebirea ca ,in clauza RANGE<inaltimea,latimea butonului > iar in clauza FUNCTION intre ghilimele:*C pentru comutator,*R pentru butoane radio,*I pentru invizibile si cu optiunile immediate:H pentru orizontal,V pentru vertical.
Campurile memo se editeaza intr-o zona rectangulara speciala,comanda este cu aceleasi optiuni ca @…GET…dar cuvantul GET este inlocuit cu EDIT.
Introducerea datelor de tip caracter (sau numeric) se face cu comenzile:
ACCEPT< intre ghilimele se cere introducerea unei date de tip caracter >TO< variabila unde se memoreaza >
INPUT< intre ghilimele se va cere introducerea unei date de tip numeric) TO<variabila unde se memoreaza>
3) Structura alternativa: IF<conditia>
simpla comenzi
[ELSE comenzi]
ENDIF
Cu mai multe ramuriDO CASE
CASE<conditia 1>
<comanda 1>
CASE<conditia 2>
<comanda 2>
…
OTHER WISE
Comanda
END CASE
4) Structura repetitiva
DO WHILE<conditie indeplinita>
<executa comanda>
[
[EXIT]-iesire fortata din ciclu
ENDDO
FOR <variabila ce ia valori>=valoare initiala TO finala
<comanda>
[EXIT]
[
ENDFOR /NEXT
Pentru parcurgerea unei table
SCAN [domeniu] [FOR<conditie>] [WHILE<pana cand>]
<comenzile>
[
[EXIT]
ENDSCAN
ELEMENTE DE GRAFICA
Ferestre in Fox Pro
rectata afisarea si se pot crea doar prin comanda DEFINE WIN-
DOW.
Ferestre utilizator nu cuprind ferestre “Browse” ferestre sistem,
ferestre de editare , ferestre de proiectare rapoarte ,etc.
Prin comenzile create ,sau Modify Comand,report Label si File se afiseaza ferestrele al caror nume deriva din numele fisierului creat sau modificat .
Crearea ferestrei utilizator
FROM lin_1,col_1 to lin_2,col_2
|IN (WINDOW) nume fereastra_2 |IN SCREEN|
|FOOTER expr_car1| |TITLE expr_car2|
|DOUBLE|PANEL|NONE|
SYSTEM|sir_caracter_ bordure|
|CLOSE|NOCLOSE|
|FLOAT|NOFLOAT|
|GROW|NOGROW|
|MINIMIZE|
|SHADOW|
|ZOOM |NOZOOM|
|FILL exr_cas3|
|COLOR SCHEME exp_nume|COLOR
|BOTTOM|TOP|SAME||NOSHOW|
Clauze Semnificatia
Nume_ fereastra_1 Reprezinta ferestrele care
Nume_fereastra_2meaza sa fie activate.
ALL Activeaza toate ferestrele
definite.
|N|WINDOWPlaseaza fereastra activata
nume_fereastra_n pe ecran.
BOTTOM|TOP|Controleaza locul unde
SAME ferestrele activate sunt plasate
terior.
NOSHOWDicteaza iesirile catre fereastra
Dezactivarea unei ferestre utilizator.
Folosim comanda DEACTIVATE WINDOW
DEACTIVATE WINDOW nume_fereastra
nume_fereastra_2…||ALL
Clause Semnificatia
Nume_fereastra_1 Reprezinta ferestrele care vor
Nume_fereastra 2 fi dezactivate
ALLDezactiveaza toate ferestrele
definite
Nume_fereastrele_n contine fereastra fiu ascunsa.
IN|WINDOW| Plaseaza fereastra activa pe ecran
SCREEN
SAVE Plaseaza imaginea ferestrei pe
ecran sau intr-o alta fereastra
dupa ce a fost ascunsa .
Plasarea pe ecran a unei ferestre definite anterior
Nume_fereastra_1 Reprezinta ferestre care vor fi
Nume_fereastra_2 plane pe ecran.
ALL Plaseaza toate ferestrele pe ecran
IN|WINDOW| Fereastra este deschisa in interiorul.
Nume_fereastra_nunei ferestre parinte fara a prelua
insa caracteristicile acesteia.
IN SCREENPermite amplasarea explicita a
frerestrei pe ecran si nu in interioru
altei ferestre.
REFRESH Clauza se foloseste pentru a redese-
na o fereastra ‘BROWSE’.
TOP Plaseaza fereastra in fata tuturor
celorlalte ferestre afisate
BOTTOM Plaseaza fereastra in spatele tutu-
ror ferestrelor afisate.
SAMEAfecteaza numai ferestrele care au
afisate sau activate anterior si apoi
prin DEACTIVATE WIND
Clauze Semnificatia
SAVE Pastreaza imaginea ferestrei pe ecran
sau intr-o alta fereastra dupa ce fe-
reastra a fost ascunsa.
Comanda MOVE WINDOW
MOVE WINDOW nume fereastra TO lin,col
|BY expr_num 1.expr_num 2
Clauza Semnificatia
Nume fereastra Numele ferestrei care se muta
TO lin ,colMuta fereastra in pozitia deter-
minata de coordonatele lin si col
BY expr _num1 Muta fereastra intr-o pozitie re-Expr_num2 lativa fata de pozitia curenta
expr_num1 respectiv expr_num2
specifica numarul de linii res-
pectiv coloane cu care se depla-
Seaza fata de pozitia curenta.
GENERATORUL DE MACHETE ECRAN
Dupa ce a fost pornit generatorul de ecrane,vom stabili unde vor aparea obiectele pe ecran in timpul executiei programului generat in acest caz
existand doua posibilitati :pe ecranul FoxPro sau in ferestre plasate in
Pentru ca ,dupa generare ,obiectele sa apara pe ecranul FoxPro,se
realizeaza urmatoarele operatii :
-se alege operatiunea Screen Layout (aspectul ecranului )din sub-
meniul Screen,ceea ce va avea ca efect deschiderea unei ferestre de
dialog avand acelasi nume ;
-in interiorul acesteia se selecteaza butonul radio Desktop,specificandu-se
astfel ca obiectele vor aparea pe ecranul FoxPro .
Modificand continutul casutelor text din sectiunea Size :(marime ) ale a-
cestei ferestre de dialog ,se delimiteaza aria de pe ecran in care vor fi afisate
obiectele,dar nu vor fi modificate dimensiunile ecranului FoxPro.
Daca se doreste ca obiectele definite sa apara intr-o fereastra distincta ,
plasata in fata ecranului FoxPro,se alege butonul radio Window din fereastra
de dialog Screen Layout. In acest caz, modificand continutul casutelor text
din sectiunile Size:,pot fi specificate dimensiunile ferestrei dupa cum urmeaza:
-in casuta text Height:(inaltime) se specifica numarul de linii pe care se va intinde fereastra;
-in casuta text Width: (va fi precizat numarul de coloane pe care le va ocupa fereastra;
In mod implicit,dimensiunile acesteia coincid cu cele ale ferestrei de
configurare a ecranului, dar le pot chiar depasi. Specificarile facute in ca-
sutele text Row: (linie) si Column:(coloana)din sectiunea Position:(pozitie),
indica pozitia fata de coltul din stanga sus al ecranului in care va aparea fe-
reastra, in timpul executiei programului ce va fi generat.
Modificand continutul casutelor text aflate sub butonul radio Desktop,
se pot specifica cateva caracteristici ale ferestrei, dupa cum urmeaza:
-Name (nume numele ce va fi atribuit ferestrei;
-Title(titlu)- sir de caractere care va fi afisat in centrul imaginii superioa-re a ferestrei;
-Footer(text de subsol)- sir de caractere care va fi afisat in centrull si caracteristicile ferestrei in care vor aparea obiectele se specifica prin inferioare a ferestrei.
Tipul si caracteristicile ferestrei in care vor aparea obiectele se spe-
cifica prin intermediul ferestrei de dialog Window Type(tipul ferestrei):
-din fereastra de dialog Screen Layout se alege declansatorul <Type>
(tip), ceea ce va avea ca efect deschiderea ferstrei de dialog Window Type
(tipul ferestrei);
-din lista ascunsa Type, aflata in partea superioara a acesteia, se alege
tipul de fereastra dorit, lista acestora fiind prezentata in tabelul urmator:
In cazul ferestrei de tip User, pot fi specificate caracteristicile acesteia
folosid comutatoarele si butoanele radio din sectiunile Attributes(atribut) si
Border(chenar), care au urmatoarele semnificatii:
-Close (inchisa poate fi inchisa;
Float (mobila)- poate fi mutata;
Shadow,nonepanel,single,double…
OBIECTE DE CONTROL SI LISTE
OBIECTE LISTE
ASPECTE LUATE PRIN COMPARATIE INTE FOXPRO SI VIZUALFOX.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 57
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved