Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Modul de lucru programat.crearea fisierelor .prg

calculatoare



+ Font mai mare | - Font mai mic



MODUL DE LUCRU PROGRAMAT.CREAREA FISIERELOR .PRG

COMUNICATIA INTRE PROCEDURI





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

STRUCTURI DE CONTROL IN PROGRAMARE


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>]


Comanda @…GET… este urmata de asteptarea introducerii valorilor cu comanda de citire :READ[CYCLE][ACTIVATE<ce fereastra activez cand fac introducerea datelor>] [WITH<denumirea ferestrei>] [SHOW<readuc pe ecran campul implicat in conditia logica de activare a ferestrei >] [WHEN<se accepta introducerea ce indeplinesc conditia de aici >] [OBJECT<al catalea obiect va fi activat in comanda de citire initial>] [LOCK/ NOLOCK] [COLOR<lista culori >]

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>

[LOOP] -se reia comanda do while

[EXIT]-iesire fortata din ciclu

ENDDO

FOR <variabila ce ia valori>=valoare initiala TO finala

<comanda>

[EXIT]

[LOOP]

ENDFOR /NEXT

Pentru parcurgerea unei table

SCAN [domeniu] [FOR<conditie>] [WHILE<pana cand>]

<comenzile>

[LOOP]

[EXIT]

ENDSCAN


ELEMENTE DE GRAFICA

Ferestre in Fox Pro


Ferestrele utilizator sunt singurele ferestre spre care poate fi redi-

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


DEFINE WINDOW nume_fereastra _1

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



Activarea unei ferestre utilizator

Activare Window|nume_fereastra_1|nume_fereastra

|BOTTOM|TOP|SAME||NOSHOW|



Clauze Semnificatia

Nume_ fereastra_1 Reprezinta ferestrele care ur-

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

Relativ la ferestrele activate an-

terior.

NOSHOWDicteaza iesirile catre fereastra

utilizator fara a o face vizibila

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

Stergerea de pe ecran a unei ferestre

HIDE WINDOW nume_fereastra_1|,

Nume fereastra_2 ..||ALL

|IN |WINDOW|nume_fereastra_n|SCREEN|SAVE|

Clauze Semnificatia

Nume_fereastra_1 Reprezinta ferestrele care vor fi

Nume_fereastra_2ascunse.

ALL Ascunde toate ferestrele

IN|WINDOW Specifica o fereastra parinte care

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


Clauze Semnificatia

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.


Mutarea ferestrelor

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

Stabilirea caracteristicilor globale ale ecranului



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


Rectangular Callout: PROPRIETATI ALE FORMULARELOR(MACHETELOR ECRAN)

OBIECTE

 

LISTE

 

ASPECTE LUATE PRIN COMPARATIE INTE FOXPRO SI VIZUALFOX.




Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 56
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved