Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica
- Evidenta Salon Auto

- Evidenta Salon Auto


 



CUPRINS

Prezentarea temei:

--Enuntul problemei

--Scurt istoric

Aspecte generale

Note:

--Programul propriu-zis

1.1. Prezentarea temei - Enuntul problemei

Programul pentru evidenta unui salon auto a fost realizat pentru a permite gestionarea facila a masinilor aflate intr-un salon auto.

Motivul realizarii acestei aplicatii si folosirii mediului de programare FoxPro este dat de existenta unui numar mare de magazine in care nu exista calculatoare cu resurse hardware suficiente pentru a rula alte aplicatii de gestiune. Programul realizat in FoxPro este o solutie pentru aceasta situatie.

Ideal ar fi sa se caute variante de imbunatatire a acestei solutii fie prin realizarea de investitii in tehnica de calcul performanta si achizitionarea de sofware performant (implica investitii financiare mari), fie imbunatatirea programului realizat in FoxPro prin adaugarea de facilitati noi.

Una din facilitatile care ar trebui implementate ar putea fi analiza stocurilor de masini si realizarea de catre program a unor rapoarte (inclusiv cu mici grafice) care sa permita utilizatorului sa vizualizeze masinile cu cel mai bun randament din punct de vedere al vanzarilor (astfel utilizatorul poate lua decizii referitoare la aprovizionarea cu noi masini in functie de vanzarile realizate anterior).

1.2. Prezentarea temei - Scurt istoric

O baza de date este o colectie de date de dimensiuni mari, aflate in interdependenta, memorate pe un suport (de regula magnetic) impreuna cu descrierea lor si a legaturilor dintre ele. Evolutia nivelului de dezvoltare tehnologica in industria de software a dus la organizarea bazelor de date dupa mai multe modele, unul foarte raspandit fiind modelul relational.

Modelul relational a fost pus la punct in anii '70, fiind consacrat in practica in anii '80 si '90. Acest model organizeaza datele in relatii sau tabele. O relatie descrie de regula o clasa de entitati din lumea reala. Clasa de entitati este caracterizata prin niste atribute sau proprietati, ce formeaza coloanele tabelei (in limbaj curent se numesc campuri). Pe liniile tabelei se gasesc valori posibile ale atributelor. Atributele (coloanele) compun schema sau structura tabelei (stabila in timp) iar liniile definesc continutul acestuia (variabil in timp).

Un SGBD reprezinta o colectie de programe car permit definirea structurii unei baze de date si, ulterior, gestionarea continutului acesteia. Prin caracteristicile sale, FoxPro (atunci cand au aparut versiuni si pentru sistemul de operare Windows s-a adaugat prefixul Visual) se incadreaza in categoria SGBD-urilor relationale.

Conform unei conceptii raspandite printre cei care lucreza in domeniul bazelor de date pentru calculatoare, FoxPro apartine familiei de programe "xBase", numita asa dupa programul dBase II.

In 1978, C. Wayne Ratliff a pus la punct un mic SGBD dedicat microcalculatoarelor. Microcalculatoarele din acea perioada aveau preturi destul de mari si performante extrem de modeste fata de ceea ce cunoastem noi astazi. Programul se numea Vulcan si ideea de la care s-a pornit scrierea acestuia era clasamentul unui campionat de fotbal. Ratliff a inceput sa mediatizeze acest produs si a avut cereri din partea unei firme mici ce calculatoare, firma care a vazut in acest program un instrument ieftin si comod de tinere la zi a datelor financiare, contabile, personale, etc. In 1980, Ratliff a primit din partea lui George Tate si Hall Lashlee, patronii unei firme mici, o oferta de colaborare. Ceva mai tarziu, cand Ratliff devine si el colaborator al firmei respective, produsul sau a stat la baza programului dBase II. Curand a inceput sa apara si concurenta, sub chipul unor firme ca Borland, Microrim, MicroPro si FoxBorland. Produsele tuturor acestor firme erau asemanatoare ca arhitectura cu dBase, de unde si reunirea acestora sub numele de xBase. Versiunea dBase IV din 1988 nu a avut succes datorita frecventelor erori ale produsului. Microsoft lanseaza intre timp SGBD Acces care nu era poate la fel de performant ca dBase dar avea o interfata prietenoasa si de o mare usurinta in utilizare, fiind proiectat sa fie exploatat direct in logica interfetei grafice utilizator specifica Windows. Firma Borland a creat versiuni imbunatatite ale programului dBase.

Fox Software si-a perfectionat produsul care a devenit FoxPro. Versiunea 2.0 a fost un succes comercial al anilor 1991. In acea perioada, Microsoft a incercat sa impuna Acces, dar acesta nu era inca foarte avansat. In lume exista un un numar mare de calculatoare mai vechi care nu putea rula sistemul de operare Windows (deci nici programul Acces) dar care erau foarte potrivite pentru programul FoxPro. In plus aplicatiile FoxPro se remarcau printr-o viteza de executie mare, impresionanta fata de dBase. Microsoft a achizitionat in cele din urma firma Fox Software (1992). Din momentul achizitiei, productia a continuat cu versiunile 2.5 si 2.6 (pentru DOS, Windows, Macintosh si UNIX), apoi cu versiunile "Visual" 3, 5 si 6.

Versiunile 2.x ale produsului FoxPro au oferit, pe langa motorul bazei de date, facilitati pentru scrierea si executia propriilor programe, proiectarea asistata a interfetelor (meniuri, formulare sau machete de prelucrare a datelor - in mod caracter, tipic mediului DOS), proiectarea de rapoarte, caracteristici specifice mediilor de dezvoltare a aplicatiilor. Versiunile "Visual" au introdus si ele o serie de facilitati.

Aceste caracteristici au facut ca FoxPro sa evolueze de la un SGBD simplu, cu oarecare facilitati de realizare a aplicatiilor, la un adevarat mediu integrat de dezvoltare - un mediu de dezvoltare consta dintr-un editor de texte pentru scrierea codului-sursa intr-un limbaj dat, un compilator pentru limbajul respectiv si cateva facilitati de natura depanatoarelor, pentru verificarea aplicatiei. O data cu perfectionarile in domeniul hardware-ului si cu cresterea atat a numarului de limbaje si variante ale acestora, cat si a numarului de dezvoltatori de aplicatii, aceste instrumente s-au diversificat si imbunatatit, integrand noi facilitati.

Astazi, printr-un mediu integrat de dezvoltare (IDE-Interactive Development Environment) intelegem un cadru completat de un set de instrumente pentru realizarea aplicatiilor. Instrumentele sunt mai ales din categoria generatoarelor de aplicatii, in care utilizatorul construieste aplicatia mai mult prin specificatii declarative decat pirn programare procedurala. De exemplu, machetele de introducere a datelor sunt proiectate vizual, programatorul plasand pe un ecran (formular) diferite obiecte (controale) predefinite, fiecare "stiind" sa interpreteze anumite evenimente - ca de pilda, un click de mouse sau o apasare de tasta. Nu e nevoie a se scrie instructiuni detaliate care sa asigure desenarea acelor obiecte de pe ecran la momentul executiei, generarea codului-sursa, pornind de la specificatiile create, cade in sarcina instrumentului respectiv.

2. Aspecte generale - definitii

O baza de date reprezinta o colectie de date persistente. Din acest punct de vedere logic, baza de date este un set de tabele, impreuna cu un set de indecsi si cu anumite relatii stabilite intre tabele. Din punct de vedere fizic, baza de date este un fisier cu o anumita structura, memorat pe disc intr-un anumit director. In cazul limbajului Fox, tabelele care apartin unei baze de date sunt memorate in fisiere separate, avand extensia .dbf .

Oricarei actiuni executate de calculator ii corespunde o comanda. Aceste comenzi se scriu pe o singura linie, in ceea ce se numette fereastra de comenzi. Pentru acceptarea comenzii se tasteaza <ENTER>.

Astfel, pentru a crea o noua tabela se utilizeaza comanda :

CREATE <nume>[.dbf]

Se va preciza in comanda numele noului fisier, iar la executarea comenzii suntem invitati printr-o fereastra de dialog sa precizam structura tabelei respective.

Dupa creare, suntem intrebati daca dorim sa introducem imediat inregistrari in noua tabela. Acest lucru poate fi facut acum sau mai tarziu. Pentru a introduce ulterior alte inregistrari, vom folosi comanda :

APPEND

Se deschide o fereastra de adaugare, in care suntem invitati sa tastam noi date. In momentul in care nu mai dorim sa introducem date, vom apasa tastele <CTRL> + <END>.

pentru a afisa sau modifica datele introduse avem la dispozitie comanda BROWSE. Aceasta poate avea mai multi parametri. Formatul general al comenzii si principalii sai parametri sunt urmatorii :

BROWSE [FIELDS <camp1><:R><:dim1>

<camp calculat1>=<exp1]

[FOR <conditie>]

[LOCK <nr>] [WIDTH <exp>]

[NOAPPEND] [NOEDIT] [NODELETE]

Informatiile din campuri se vor afisa pe verticala. Prin optiunea FIELDS este posibila afisarea doar a unei liste reduse de cimpuri. Mai mult, printre acestea pot apare si cimpuri care nu sunt memorate efectiv in baza de date. Acestea din urma poarta denumirea de campuri calculate, iar valorile prezentate acolo se pot determina pornind de la informatiile deja existente. Pentru fiecare cimp se poate preciza lungimea de afisare (WIDTH) si daca datele pot fi modificate sau nu (LOCK). De asemenea, se poate preciza lungimea maxima de afisare a tuturor campurilor. Prin clauza FOR se vor afisa numai acele inregistrari care respecta conditia data. In sfarsit, putem anula posibilitatea actiunilor de adaugare (NOAPPEND), modificare (NOEDIT), stergere (NODELETE).

Exemple concrete de utilizare a comenzii :

browse fields nume, prenume for camin==.T.

browse fields nume :R :3 , media

browse noedit, noappend

browse for camin==.T. width 10

Odata deschisa fereastra de browse, pentru adaugarea de noi inregistrari folosim combinatia <CTRL> + <N>. La salvarea modificarilorefectuate se apasa <CTRL> + <END>.

Iata cum va arata ecranul in urma unei comenzi simple BROWSE :

Dupa ce a fost creata o tabela, aceasta se afla in starea de 'deschis'. Aceasta inseamna ca fisierul respectiv este deschis si se pot efectua operatii (adaugare, modificare, afisare etc.) asupra datelor respective. Pentru a deschide o tabela deja existenta, folosim commanda :

USE <nume>[.dbf]

iar pentru a o inchide, comanda :

USE

Listarea pe ecran a informatiilor comtinute in tabela se efectueaza cu comanda :

LIST

Iata cum apar aceste date pe ecran :



Informatiile globale referitoare la tabela curenta pot fi afisate cu ajutorul comenzii comutator :

SET STATUS ON ­ / OFF

Acestea cuprind printre altele : numele tabelei, numarul total de inregistrari si numele inregistrarii curente. La deschiderea bazei de date inregistrarea curenta este prima inregistrare.

Putem lucra intr-un director personal prin utilizarea comenzii :

SET DEFAULT TO <cale>, unde <cale> reprezinta un drum de tip DOS.

Variabile

Pe langa memorarea datelor sub forma in baze de date (tabele) in cadrul unor fisiere speciale pe harddisc, se impune si posibilitatea memorarii temporare a acestor date in memoria interna. Acest lucru se realizeaza in principal prin folosirea variabilelor.

Variabila este un obiect definit prin 4 caracteristici:

a)      un tip de data anumit;

b)      un nume (identificator);

c)      o valoare (curenta);

d)     o adresa de memorie.

Putem figura toate acestea in felul urmator:

putem face abstractie de adresa de memorie a variabilei; acest lucru este gestionat numai de calculator.

in limbajul Fox, tipul de data al unei variabile nu este fixat la inceput; el poate fi modificat printr-o simpla atribuire ulterioara.

Date generale:

Programul principal este meniu.mpr. Pentru a rula programul alegem din meniul program optiunea do cautam in folderu cu atestatul fisierul meniu.mpr.

Tabelele folosite de program sunt tva.dbf, marfa.dbf, coduri.dbf si vand.dbf.

Structura tabelei vand.dbf :

Structura tabelei marfa.dbf :

Structura tabelei coduri .dbf :

Meniul are urmatoarele optiuni:

Se introduc codurile cu numele masinii si apoi se pot face operatii de intrare pentru codurile masinilor incluse , iesiri in limita stocului existent, modificari de masini (pret, ),coduri ..si se fac diverse situatii.

Programul are un meniu orizontal cu urmatoarele optiuni:

DATE MASINI este un submeniu cu urmatoarele optiuni:

intrari masini- se executa programul datemarf.prg cu ajutorul caruia introduc masini ale caror coduri sunt deja introduse.

Iesiri masini- se executa programul datevand.prg cu ajutorul caruia se vand masini existente

Coduri masini- se executa programul datecodu.prg cu ajutorul caruia introduc codurile masinilor. Aceasta optiune se executa prima.

ACTUALIZARI este un dubmeniu cu 2 optiuni:

intrari masini- modifmar.prg -se introduce codul unei masini existente si o data de intrare existenta se fac modificari

coduri- se executa programul modifcod.prg

TVA POT MODIFICA TVA-UL-

RAPOARTE este un submeniu cu optiunile:

intrari/perioada- se executa programul rapint.prg . Se introduc 2 date calendaristice si sunt afisate toate intrarile de masini din acea perioada

iesiri/perioada- se executa programul rapies.prg . Se introduc 2 date calendaristice si sunt afisate toate iesirile de masini din acea perioada

liste masini- liste.prg-sunt afisate toate masinile.

VIZUALIZARI este un submeniu cu optiunile:

intrari/perioada- inper.prg

iesiri/perioada- iesper.prg

intrari masina- unprod.prg

intrari/toate masinile - totprod.prg

HELP-HELP.PRG-o scurta descriere a programului

IESIRE- iesirea din program- iesire.prg

Citirea variabilelor

Operatia de citire se executa in mod simplu prin comanda INPUT. Forma generala a comenzii este urmatoarea:

INPUT <mesaj> TO <nume_variabila>

Spre exemplu:

input 'a=' to a

input 'numar=' to nr

Citirea datelor numerice cu comanda input se realizeaza tastand cifra cu cifra valoarea dorita, iar in final apasandu-se tasta ENTER. In cazul datelor de tip sir de caractere se vor tasta in plus, la inceput si la sfarsit, caracterele delimitatorii: '(apostrof) sau "(ghilimele). La fel, pentru citirea datelor de tip data calendaristica se vor utiliza perechile de acolade si delimitatorii de forma: / .

Atribuirea

Asupra variabilelor declarate se pot efectua calcule, spre exemplu calculele aritmetice prin operatiile: + (adunare), - (scadere), * (inmultire), / (impartire). Rezultatul acestor calcule se va depune in cele mai multe cazuri tot intr-una din aceste variabile.

Astfel, prin atribuirea: a=b+c in variabila a se va depune valoarea sumei dintre valorile continute in variabilele b si c. Similar, atribuirea a=a+1 va avea ca efect cresterea cu o unitate a valorii variabilei a.

Forma generala a comenzii de atribuire este urmatoarea:

<variabila>=<expresie>

Insasi declararea unei variabile se poate face printr-o prima atribuire a unei valori initiale.

Pentru primul caz putem scrie secventa de atribuiri:

b=1

c=2

a=b+c

O variabila poate fi declarata printr-o comanda de citire.

Spre exemplu, putem scrie succesiv comenzile:

input 'a=' to a

a=a+1

Scrierea datelor

Putem scrie pe ecran valoarea curenta a unei expresii, iar ca un caz particular a unei variabile.   Pentru aceasta, se utilizeaza comanda ? cu urmatorul format general:

?<lista_expresii>

Expresiile din lista se despart prin virgula.

Spre exemplu:

?a

?(a+b)*c

?a,b,c

?'rezultatul=',c

Programe

Pana acum comenzile erau executate prin tastarea lor in fereastra de comenzi, urmata de apasarea tastei <ENTER>. In acelasi mod se proceda si in cazul in care era necesara o intreaga secventa de comenzi.

Exista si o modalitate mult mai eleganta si mai generala: scrierea respectivei secvente de comenzi intr-un fisier special, urmata de compilarea si executarea fisierului respectiv.

Aceste fisiere poarta numele de fisiere program sau fisiere comenzi. Comenzile scrise acolo se vor executa secvential in ordinea in care au fost scrise. Mai mult, prin utilizarea de fisiere program este posibila folosirea unor structuri specifice de control al fluxului de executie al respectivelor comenzi.

Fisierele program poarta extensia .prg .

Editarea programului

Editarea unui fisier se realizeaza prin comanda:

MODIFY COMMAND <nume_fisier>

Spre exemplu: modi comm unu.prg

Presupunem ca dorim ca programul respectiv sa citeasca doua numere intregi, sa calculeze si sa tipareasca suma lor. Atunci, in fereastra nou deschisa se vor tipari pe linii separate urmatoarele comenzi:

input 'a=' to a

input 'b=' to b

c=a+b

?c

Ca regula generala, pentru a inhiba afisarea pe ecran a unor mesaje din partea sistemului Fox in cadrul executiei programului, se utilizeaza comanda comutator:

SET TALK ON / OFF

Astfel, primul nostru program va arata in modul urmator:

set talk off

input 'a=' to a

input 'b=' to b

c=a+b

?c

Iar urmatoarea figura arata modul in care apar pe ecran aceste lucruri:

Compilarea

Urmatoarea etapa in folosirea unui program o reprezinta operatia de compilare. Compilarea se executa cu ajutorul optiunii COMPILE din submeniu.

Acum se verifica daca comenzile programului au fost scrise sintactic corect si se genereaza un fitier obiect cu acelasi nume, dar cu extensia .fxp. Tot acum, prin compilare, se salveaza si continutul fisierului sursa editat. Nu mai este necesara salvarea programului prin intermediul optiunii SAVE din submeniul FILE.

Executia

In sfarsit, un program compilat poate fi lansat in executie. Acest lucru se realizeaza prin comanda DO, cu urmatoarea forma generala:

DO <nume_fisier>

Este bine ca inainte de executie fereastra cu fisierul sursa sa fie inchisa.

3.1. Note - Programul propiu-zis

** ** ** ** ** ** ** ** *

*

* 02/08/06 MENIU.MPR 22:58:07

*

** ** ** ** ** ** ** ** *

*

* Author's Name

*

* Copyright (C) 2006 Company Name

* Address

* City, Zip

*

* Description:

* This PROGRAM was automatically generated BY GENMENU.

*

** ** ** ** ** ** ** ** *

** ** ** ** ** ** ** ** *

*

* Menu Definition

*

** ** ** ** ** ** ** ** *

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE PAD _1q91d8a5a OF _MSYSMENU PROMPT 'DATE' COLOR SCHEME 3 ;

KEY ALT+D, ''

DEFINE PAD _1q91d8a5b OF _MSYSMENU PROMPT 'ACTUALIZARI' COLOR SCHEME 3 ;

KEY ALT+A, ''

DEFINE PAD _1q91d8a5c OF _MSYSMENU PROMPT 'TVA' COLOR SCHEME 3 ;

KEY ALT+T, ''

DEFINE PAD _1q91d8a5d OF _MSYSMENU PROMPT 'RAPOARTE' COLOR SCHEME 3 ;

KEY ALT+R, ''

DEFINE PAD _1q91d8a5e OF _MSYSMENU PROMPT 'VIZUALIZARI' COLOR SCHEME 3 ;

KEY ALT+V, ''

DEFINE PAD _1q91d8a5f OF _MSYSMENU PROMPT 'HELP' COLOR SCHEME 3 ;

KEY ALT+H, ''

DEFINE PAD _1q91d8a5g OF _MSYSMENU PROMPT 'IESIRE' COLOR SCHEME 3 ;

KEY ALT+I, ''

ON PAD _1q91d8a5a OF _MSYSMENU ACTIVATE POPUP date

ON PAD _1q91d8a5b OF _MSYSMENU ACTIVATE POPUP actualizar

ON SELECTION PAD _1q91d8a5c OF _MSYSMENU do tvamodif.prg

ON PAD _1q91d8a5d OF _MSYSMENU ACTIVATE POPUP rapoarte

ON PAD _1q91d8a5e OF _MSYSMENU ACTIVATE POPUP vizualizar

ON SELECTION PAD _1q91d8a5f OF _MSYSMENU do help.prg

ON SELECTION PAD _1q91d8a5g OF _MSYSMENU do iesire.prg

DEFINE POPUP date MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF date PROMPT 'INTRARI ARTICOLE'

DEFINE BAR 2 OF date PROMPT 'IESIRI ARTICOLE'

DEFINE BAR 3 OF date PROMPT 'CODURI ARTICOLE'

ON SELECTION BAR 1 OF date do datemarfa.prg

ON SELECTION BAR 2 OF date do datevand.prg

ON SELECTION BAR 3 OF date do datecoduri.prg

DEFINE POPUP actualizar MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF actualizar PROMPT 'INTRARI ARTICOLE'

DEFINE BAR 2 OF actualizar PROMPT 'CODURI'

ON SELECTION BAR 1 OF actualizar do modifmarfa.prg

ON SELECTION BAR 2 OF actualizar do modifcod.prg

DEFINE POPUP rapoarte MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF rapoarte PROMPT 'INTRARI/PERIOADA'

DEFINE BAR 2 OF rapoarte PROMPT 'IESIRI/PERIOADA'

DEFINE BAR 3 OF rapoarte PROMPT 'LISTE ARTICOLE'

ON SELECTION BAR 1 OF rapoarte do rapint.prg

ON SELECTION BAR 2 OF rapoarte do rapies.prg

ON SELECTION BAR 3 OF rapoarte do liste.prg

DEFINE POPUP vizualizar MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF vizualizar PROMPT 'INTRARI/PERIOADA'

DEFINE BAR 2 OF vizualizar PROMPT 'IESIRE/PERIOADA'

DEFINE BAR 3 OF vizualizar PROMPT 'INTRARI/UN ARTICOL'

DEFINE BAR 4 OF vizualizar PROMPT 'INTRARI/TOATE PRODUSELE'

ON SELECTION BAR 1 OF vizualizar do inper.prg

ON SELECTION BAR 2 OF vizualizar do iesper.prg

ON SELECTION BAR 3 OF vizualizar do unprod.prg

ON SELECTION BAR 4 OF vizualizar do totprod.prg

DEFINE WIND PR_IN from 0,0 TO 50,150 ;

IN screen;

TITLE 'Atestat ';

FONT 'ROMAN' , 15 STYLE 'B';

SYSTEM CLOSE ;

grow MINIMIZE ZOOM;

FILL FILE 'sediu.bmp'

ACTI WIND PR_IN

move wind pr_in center

@2,36 SAY'EVIDENTA SALON AUTO' COLOR Gr+/b

@17,31 SAY' ATESTAT DE DIPLOMA' COLOR Gr+/b

@18,31 SAY' CANDIDAT: numele ' COLOR Gr+/b

@19,31 SAY' ~~2006~~' COLOR Gr+/b

Procedure datecoduri

CLEAR

rasp='D'

DO WHILE rasp='D'

define window rap from 4,4 to 20,74 double title 'INTRODUCERE DATE - CODURI MASINI';

FILL FILE 'fundal.bmp'

activate window rap

move wind rap center

USE coduri ORDER cod_prod

SCATTER MEMVAR BLANK

@5,5 SAY'COD PRODUS'

@5,30 GET m.cod_prod VALID m.cod_prod<>0 ERROR'COD DIFERIT DE ZERO' PICTURE '@Z 999'

READ

SEEK m.cod_prod

IF FOUND()

DO sunet

WAIT 'DUBLURA' WINDOW

ELSE

@6,5 SAY'DENUMIRE MASINA'

@6,30 GET m.den_prod FUNCTION'!'

READ

APPEND BLANK

GATHER MEMVAR

ENDIF

@ 10,10 SAY 'MAI INTRODUCETI DATE ? [D/N]'

@ 10,38 GET rasp picture '!'

READ

CLEAR

DEACTIVATE WINDOW rap

ENDDO

CLOSE DATA

Return

Procedure Datemarfa

CLEAR

rasp='D'

DO WHILE rasp='D'

define window rap from 4,4 to 20,74 double title 'INTRODUCERE DATE - CODURI MASINI';

FILL FILE 'fundal.bmp'

activate window rap

move wind rap center

USE coduri ORDER cod_prod

SCATTER MEMVAR BLANK

@5,5 SAY'COD PRODUS'

@5,30 GET m.cod_prod VALID m.cod_prod<>0 ERROR'COD DIFERIT DE ZERO' PICTURE '@Z 999'

READ

SEEK m.cod_prod

IF FOUND()

DO sunet

WAIT 'DUBLURA' WINDOW

ELSE

@6,5 SAY'DENUMIRE MASINA'

@6,30 GET m.den_prod FUNCTION'!'

READ

APPEND BLANK

GATHER MEMVAR

ENDIF

@ 10,10 SAY 'MAI INTRODUCETI DATE ? [D/N]'

@ 10,38 GET rasp picture '!'

READ

CLEAR

DEACTIVATE WINDOW rap

ENDDO

CLOSE DATA

Return

Procedure datevand

SAVE SCREEN TO aa

CLEAR

rasp='D'

DO WHILE rasp='D'

define window rap from 4,4 to 20,74 double title 'INTRODUCERE DATE - CODURI MASINA';

FILL FILE 'fundal.bmp'

activate window rap

move wind rap center

USE coduri ORDER cod_prod

SCATTER MEMVAR BLANK

@5,5 SAY'COD MASINA'

@5,30 GET m.cod_prod VALID m.cod_prod<>0 ERROR'COD DIFERIT DE ZERO' PICTURE '@Z 999'

READ

SEEK m.cod_prod

IF FOUND()

DO sunet

WAIT 'DUBLURA' WINDOW

ELSE

@6,5 SAY'DENUMIRE MASINA'

@6,30 GET m.den_prod FUNCTION'!'

READ

APPEND BLANK

GATHER MEMVAR

ENDIF

@ 10,10 SAY 'MAI INTRODUCETI DATE ? [D/N]'

@ 10,38 GET rasp picture '!'

READ

CLEAR

DEACTIVATE WINDOW rap

ENDDO

CLOSE DATA

Return

define window help from 2,2 to 22,77 double title 'AJUTOR' footer 'Apasati orice tasta pentru a continua' color scheme 5;

FILL FILE 'fundal.bmp'

activate window help 

move wind help center

set cursor OFF

@ 3,3 say 'Programul realizeaza o evidenta a aprovizionarii cu MASINI a unei '

@ 4,0 SAY' salon auto si vanzarile lor. Masinile sunt codificate.'

@ 5,3 SAY ''

@6,0 SAY'Datele sunt introduse de catre operator,de la tastatura.'

@7,0 SAY 'Pretul de vanzare se calculeaza prin program de catre programator,dupa'

@8,0 SAY'formula : pret_vanzare=pret_unitar+valoare_TVA+valoare_adaos_comercoal.'

@9,0 SAY'Valoarea TVA se calculeaza astfel: valoare_TVA=procent_tva*pret_unitar/100'

@10,3 SAY' '

@11,0 SAY' '

@12,0 SAY'Se pot scoate liste cu intrari si vanzare masini ! '

@13,3 SAY'Tot prin rapoarte se calculeaza valoarea totala a masinilor achizitionate ,'

@14,0 SAY'respectiv vandute precum si alte informatii referitoare la valorile de vanzare!'

read

set cursor on

deactivate window HELP

procedure inper

CLEAR

define window cevad from 4,4 to 20,74 double title 'VIZUALIZARE INTRARI' FOOTER '[Esc]=Iesire' shadow color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad

move wind cevad center

define window cevad1 from 6,6 to 18,72 none color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad1

move wind cevad1 center

m.di=

m.df=

@0,0 say 'DE LA: '

@0,10 get m.di

@1,0 say 'PANA LA: '

@1,10 get m.df

read

use marfa order cod_prod

brow for data_int>=m.di and data_int<=m.df noedit

close data

deactivate window cevad,cevad1

return

procedure liste

CLEAR

use marfa order den_prod

repo form intrari.frx pdsetup preview

close data

deactivate window rap

return

procedure modifcod

rasp='D'

DO WHILE rasp='D'

define window rap from 4,4 to 20,74 double title 'INTRODUCERE DATE - CODURI ARTICOLE';

FILL FILE 'fundal.bmp'

activate window rap

move wind rap center

USE coduri ORDER cod_prod

SCATTER MEMVAR BLANK

@5,5 SAY'COD ARTICOL'

@5,30 GET m.cod_prod VALID m.cod_prod<>0 ERROR'COD DIFERIT DE ZERO' PICTURE '@Z 999'

READ

SEEK m.cod_prod

IF NOT FOUND()

DO sunet

WAIT 'COD INEXISTENT' WINDOW

ELSE

SCATTER MEMVAR

@6,5 SAY'DENUMIRE ARTICOL'

@6,30 GET m.den_prod FUNCTION'!'

READ

GATHER MEMVAR

ENDIF

@ 10,10 SAY 'MAI MODIFICATI DATE ? [D/N]'

@ 10,38 GET rasp picture '!'

READ

CLEAR

DEACTIVATE WINDOW rap

ENDDO

CLOSE DATA

Return

Procedure modifmarfa

define window fermarfa from 4,4 to 20,74 double title 'DATE MARFA';

FILL FILE 'fundal.bmp'

activate window fermarfa

move wind fermarfa center

rasp='da'

do while rasp='da'

@ 1,2 say 'COD ARTICOL '

@ 2,2 say 'DATA INTRARII '

@ 3,2 say 'DENUMIRE ARTICOL'

@ 4,2 say 'PRET UNITAR '

@ 5,2 say'NUMAR BUCATI '

@ 6,2 say 'VALOARE TVA '

@ 7,2 say 'PRET VANZARE '

sele 1

use marfa order modific

scatter memvar blank

sele 2

use tva

scatter memvar

sele 1

@ 1,19 get m.cod_prod picture '@z 9999'

@ 2,19 get m.data_int

read

seek STR(m.cod_prod)+DTOC(m.data_int)

if NOT found()

DO sunet

wait 'ARTICOL INEXISTENT !!!' window

define window vad1 from 4,4 to 20,74 double title 'VIZUALIZARE INTRARI' FOOTER '[ESC]=Iesire' shadow;

FILL FILE 'fundal.bmp'

activate window fermarfa

move wind fermarfa center

activate window vad1

define window vad from 6,6 to 18,72 none

activate window vad

browse

deactivate windows vad,vad1

ELSE

SCATTER MEMVAR

@ 3,19 say m.den_prod COLOR r+*/n

@ 4,19 get m.pret_unit PICTURE '@z 9999999999'

@ 5,19 get m.nr_buc valid m.nr_buc<>0 error 'NUMAR DIFERIT DE ZERO' PICTURE '@Z 9999'

read

m.val_tva=m.pret_unit*m.procent/100

m.pret_vanz=m.pret_unit+m.val_tva

@ 6,19 SAY m.val_tva COLOR r+*/n

@ 7,19 SAY m.pret_vanz COLOR r+*/n

gather memvar

replace all stoc with stoc+m.nr_buc for cod_prod=m.cod_prod

endif

@ 10,10 say 'MAI FACETI MODIFICARI ? [D/N]'

@ 10,40 get rasp picture '!'

read

clear

close data

enddo

deactivate window fermarfa

return

procedure sunet

SET BELL TO 880,4

??CHR(7)

SET BELL TO 1400,4

??CHR(7)

SET BELL TO 880,4

??CHR(7)

SET BELL TO

Return

Procedure totprod

define window cevad from 4,4 to 20,74 double title 'VIZUALIZARI'footer '[Esc]=Iesire' shadow color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad

move wind cevad center

define window cevad1 from 6,6 to 18,72 none color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad1

move wind cevad1 center

use marfa order cod_prod

browse noedit

close data

deactivate window cevad,cevad1

return

procedure tvamodif

define window modtva from 4,2 to 22,75 double title 'MODIFICATI PROCENTUL DE TVA ?' FOOTER '[Esc]=Iesire' shadow color scheme 5;

FILL FILE 'fundal.bmp'

activate window modtva

move wind modtva center

define window modtva1 from 6,4 to 20,73 none color scheme 5;

FILL FILE 'fundal.bmp'

activate window modtva1

move wind modtva1 center

use tva

brow

use

deactivate windows modtva,modtva1

return

procedure unprod

define window cevad from 4,4 to 20,74 double title'VIZUALIZARI' footer'[Esc]=Iesire' shadow color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad

move wind cevad center

define window cevad1 from 6,6 to 18,72 none color scheme 1;

FILL FILE 'fundal.bmp'

activate window cevad1

move wind cevad1 center

use marfa order cod_prod

scatter memvar blank

@0,0 say 'COD MASINA'

@0,15 get m.cod_prod picture '@z 999'

read

seek m.cod_prod

if not found()

wait'EROARE !!!COD INEXISTENT !'WINDOW

else

brow noedit for cod_prod=m.cod_prod

endif

close data

deactivate window cevad,cevad1

return





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.