Sistem Informatic Pentru Managementul Flotelor din Domeniul Auto

Cuprins

1.Introducere………………………………………………………………………………………………………2

2.Cap I. Sistem informatic, software cu sursa deschisă (open-source software), Apache OpenOffice și Microsoft Office……………………………………………………………………..……5

I.1. Sistem informatic………………………………………………………………………………5

I.2. Software cu sursă deschisă (open-source software)…………………………………9

I.3. Apache OpenOffice (AOO)………………………………………………………………11

I.4. Microsoft Office……………………………………………………………………………..12

I.5. Avantaje si dezavantaje Open Office………………………………………………….13

3.Cap II. Studiu de piață, cerințe de dezvoltare și mediu de dezvoltare……………….14

II.1 Studiu de piață……………………………………………………………..14

II.2 Cerințe de dezvoltare…………………………………………………………………………15

II.3 Mediu de dezvoltare………………………………………………………..17

4.Cap III. Dezvoltarea aplicației „Sistem Informatic Pentru Managementul Flotelor din Domeniul Auto”……………………………………………………………………….23

III.1. Prezentarea aplicației din punctul de vedere al operatorului……………23

III.2. Prezentarea aplicației din punctul de vedere al dezvoltatorului…………42

III.3. Exigențe asupra proiectului………………………………………………47

5.Modalități de îmbunătățire a aplicației………………………………………………49

6.Concluzii……………………………………………………………………………..50

Bibliografie………………………………………………………………………………………………………51

ANEXA 1 – Imagini………………………………………………………………………………………….52

ANEXA 2 – Cod sursa………………………………………………………………………………………55

Introducere

Dacă ne uităm în jurul nostru putem observa cu ușurință că suntem în secolul informației, al vitezei și al tehnologiei. Scrisorile, facturile, le primim mai nou pe e-mail, din ce in ce mai rar prin poștă; plata facturilor se face cu câteva click-uri cu ajutorul internet banking-ului, evitând cozile; cumpărăturile au început să se facă on-line, iar mai nou se poate urmări în ce stadiu este comanda (exemplu: emag – magazin online, dhl – firma de curierat); orice carte apare neapărat și în format electronic. Din această ultimă categorie face parte atât ramura de informare, cercetare cât și ramura de testare a cunoștințelor.

Tehnologiile avansate existente acum oferă posibilitatea aprofundării și testării cunoștințelor prin intermediul Internetului, cu o mare ușurință.

Indiferent de vârstă, cu toții intrăm în contact cu tehnologia în fiecare zi fie că e vorba de ATM-uri, roboței la care se plătesc facturile, computer sau smartphone-uri.

În societatea în care trăim timpul este prețios iar cel mai ușor este atunci când tot ce avem nevoie este la un loc. De exemplu la roboțelul de facturi din interiorul băncilor se pot plăti majoritatea facturilor iar asta înseamnă câștig de timp. Un alt exemplu este un smartphone în care se pot regăsi toate aplicațiile necesare și care prezintă interes pentru posesorul acestuia.

În această lucrare va fi prezentată dezvoltarea unei aplicații ușor de folosit, pentru firmele ce dețin flote de mașini (exemplu: firmele de transport). Aplicația cuprinde o baza de date cu informații utile și necesare, relaționate fiecărei mașini în parte iar marele avantaj, mulțumită evoluției tehnologiei, toate informațiile se găsesc în același loc.

A fost aleasă această temă și implicit dezvoltată această aplicație deoarece, în momentul în care o persoană lucrează la o firma ce are în dotare o flotă de mașini, are nevoie de o aplicație ce îi poate oferi cât mai multe detalii necesare despre o anumită mașina. O aplicație ce conține totul la un loc, scutește angajatul de o căutare anevoioasă în bibliorafturi după o factură, o asigurare, o foaie ce reflectă data de expirare a ITP-ului sau a RCA-ului.

Se ia un exemplu simplu, mașina personală. Pentru a circula cu ea este nevoie de un RCA, rovinietă, ITP, taxe care au o dată de expirare. Într-adevăr, în ziua de azi există aplicații pentru smartphone-uri care pot ține evidența acestor taxe la mașina personală, dar când este vorba de o flotă de mașini, lucrurile se complică. Pentru o firmă sunt necesare mai multe informații despre mașinile aflate sub tutelă iar aici intervine aplicația ce va fi prezentată în această lucrare.

Cu o interfață simplă, accesibilă, aplicația îți poate oferi informații despre o anumită mașină din flota de mașini: numărul de înmatriculare, marca acestuia, numărul șasiului, anul de fabricație, data expirării RCA, a rovinietei, a ITP-ului, data reviziei/reparației, furnizorul la care s-a făcut revizia/reparația, în ce a constat reparația, valoarea facturii ce trebuie achitată la furnizor, pe ce secție este încadrată mașina și numele șoferului care o conduce. Deci aplicația nu se rezumă doar la afișarea a câteva detalii despre mașini ci se axează pe manageriatul unei flote de mașini. Pentru o manevrare ușoară a documentației fizice, aplicația permite salvarea informațiilor în format *.xls, cu ajutorul Apache OpenOffice sau cu Microsoft Excel, se printează și se poate anexa oriunde este nevoie.

Aplicația „Management-ul unei flote auto” își propune să ușureze munca celor din fața calculatorului care nu au timp sau nu se descurcă atât de bine să caute în mai multe fișiere diverse detalii despre o mașină ce aparține firmei la care lucrează.

Pentru realizarea acestei aplicații s-a folosit Visual FoxPro versiunea 9 iar pentru extragerea informațiilor necesare din program, se poate face salvarea fie într-o foaie Apache OpenOffice fie într-o foaie Microsoft Excel.

Această aplicație este în prezent folosită de o firmă pe care o vom numi firma „X”, iar datele introduse simulează o situație reală, cât mai aproape de necesitățile unei astfel de companii ce deține o flotă de mașini.

Produsul dezvoltat are forma unui base package care conține funcțiile esențiale și care se poate particulariza la cerere astfel încât să se preteze pe cerințele clientului cu aproape orice modificare ar dori acesta. Din acest punct de vedere aplicația este foarte maleabila devenind un base package plus module. Acest lucru influențează în mod direct prețul aplicației, putând astfel sa se adreseze unei plaje largi de clienți.

Lucrarea este structurată astfel încât să treacă de la general la particular.

Primul capitol oferă detalii generale despre sistemele informatice de care este atât de mare nevoie în ziua de astăzi, despre soft-urile cu sursa deschisă, despre Apache OpenOffice de care va fi nevoie în aplicație pentru exportarea tuturor informațiilor ce ar putea necesita o arhivare alături de documentele mașinilor sau ale firmei deținătoare (va fi nevoie mai exact de foaia de calcul de la Apache OpenOffice) și de asemenea va conține informații despre Microsoft Office (în aplicație va fi nevoie mai exact de Microfoft Excel, care va oferi și el posibilitatea de exportare a informațiilor din program) .

Cel de-al doilea capitol se va apropia mai mult de aplicație, încercând să prezinte câteva programe și idei asemănătoare „Managementului unei flote auto”, câteva detalii despre Microsoft Visual Studio cu axare pe Microsoft Visual FoxPro și o scurtă prezentare a bazelor de date de la general pana la baze de date in Visual FoxPro.

Al treilea capitol va conține prezentarea aplicației atât din punct de vedere al utilizatorului cât și din punct de vedere al dezvoltatorului.

Astfel, trecând prin fiecare capitol de la primul la al treilea de merge de la ideea generală a creări unui program până la prezentarea efectivă a acestuia.

La sfârșitul lucrării teoretice vor exista, în această ordine, concluziile, bibliografia si anexele.

Cap I. Sistem informatic, software cu sursă deschisă (open-source software) și mediul de dezvoltare

I.1. Sistem informatic

În zilele noastre toate domeniile de activitate se bazează pe utilizarea, într-o măsură mai mare sau mai mică, a tehnologiilor informatice și a calculatorului. A devenit omniprezentă utilizarea mijloacelor TIC (Tehnologia Informației și Comunicațiilor) în desfășurarea activităților celor mai diverse și pentru luarea deciziilor care au la bază informații ce sunt obținute din prelucrarea unor date culese cu privire la obiectul activității respective.

Conceptul de sistem are un rol de bază în domeniul sistemelor informatice. Odată înțeles, acesta vine să fundamenteze alte concepte conexe din domeniile tehnologiei, aplicațiilor, dezvoltării și managementului sistemelor informatice.

Conceptul de sistem este legat de:

rețelele de calculatoare : reprezintă elemente ce fac parte din sistemelor de prelucrare a informațiilor;

utilizarea computerelor din domeniul business-ului;

tehnologii de management a informației care au un rol deosebit de important asupra calității, valorii business-ului etc.

Un sistem este reprezentat de un grup de componente ce sunt legate prin relații și care se îndreaptă spre un scop comun prin acceptarea de intrări și producerea de ieșiri printr-un proces (de transformare).

INTRARI PROCES IESIRI

Intrări (input) : sunt elementele ce intră în sistem pentru a putea fi prelucrate;

Proces : reprezintă procesul de transformare a intrărilor în ieșiri;

Ieșiri (output) : sunt elementele care au rezultat prin procesul de transformare.

Pe lângă aceste componente se mai enumera încă două adiționale: feed-back (răspunsul) și controlul. Un sistem cu feed-back și control este un sistem cibernetic.

Feed-back : sunt datele ce reprezintă performanțele sistemului.

Controlul : implică monitorizarea și evaluarea feed-back-ului pentru a putea determina în ce măsura sistemul se îndreaptă spre îndeplinirea scopului. Ajustarea intrărilor din sistem este necesară funcției de control pentru a asigura că acesta va produce ieșirile corespunzătoare.

Un sistem informațional este acel sistem ce permite introducerea de date prin procedee manuale sau automate de către sistem, stocarea acestora, prelucrarea lor și extragerea informației sub diverse forme. Aceste se poate defini ca fiind ansamblul de elemente implicate în procesul de colectare, de transmisie, prelucrare de informație, informației revenindu-i rolul central din sistem.

În cadrul sistemului informațional se regăsesc de exemplu: informația vehiculată, documentele purtătoare de informații, personalul, mijloace de comunicare, sistemele de prelucrare a informației. Printre posibilele activități desfășurate în cadrul acestui sistem, pot fi enumerate: achiziția de informații din sistemul de bază, completarea documentelor și transferul acestora între diferite compartimente, centralizarea datelor.

În cadrul unui sistem informațional, majoritatea activităților se desfășură prin intermediul tehnicilor de calcul. Se pot prelucra datele primare și apoi rezultatul poate fi transferat mai departe, pentru a putea fi prelucrat. Transferul se poate face și el pe cale electronica prin intermediul unei rețele de calculatoare.

Ansamblul de elemente implicate în tot acest proces de prelucrare și transmitere a datelor pe cale electronica alcătuiesc un sistem informatic. Ansamblul poate fi observat in figura de mai jos (Imaginea 1) .

Imaginea 1.Poziția sistemului informatic în cadrul sistemului informațional

Elementele componente ale unui sistem informatic: oameni, hardware, software și date care sunt elementele de bază:

cadrul organizatoric al firmei și datele vehiculate în sistemul informațional corespunzătoare activităților desfășurate;

resursele umane (beneficiarii sistemului cât și personalul de specialitate care îl proiectează/implementează);

metode și tehnici de proiectare a sistemelor informatice;

echipamente hardware pentru stocarea și prelucrarea datelor;

programele software folosite pentru realizarea obiectivelor sistemului informatic;

Un alt aspect important îl reprezintă procesarea informațiilor. Aceasta constă în introducerea, prelucrarea, ieșirea și stocarea și activitățile de control. Datele sunt fapte brute sau observații în general despre fenomene fizice sau tranzacții comerciale. Datele au un caracter obiectiv sunt măsurabile prin caracteristicile lor.

Informațiile sunt deja procesate, au un anumit înțeles și sunt folositoare utilizatorului. Datele suferă un proces de adăugare de valoare prin:

agregare, manipulare și organizare;

analizarea și evaluarea conținutului lor;

utilizarea lor într-un context folositor pentru utilizator;

Principalele activități dintr-un sistem informatic sunt cele de prelucrarea informațiilor. Acestea includ:

Introducerea datelor;

Procesarea datelor pentru a putea fi obținute informații;

Ieșirea procedurilor informaționale;

Stocarea resurselor informaționale;

Controlul performanțelor sistemului.

Introducerea datelor : – datele despre diferite evenimente trebuie să fie „culese” și pregătite pentru prelucrare. Introducerea se referă la editarea de înregistrări. Datele, odată introduse, pot fi transferate pe un suport (magnetic/optic) până la prelucrare.

Prelucrarea datelor : – datele care sunt subiectul activităților de prelucrare cuprind: calcule, însumări, sortări, clasificări, sau comparări. Aceste activități organizează, analizează și manipulează datele, convertindu-le în informații pe înțelesul utilizatorilor.

Ieșirea produselor informaționale : – informațiile ce rezultă în urma prelucrării, apar în diferite formre pentru a fi transmise utilizatorilor în forma solicitată de aceștia. Informațiile trebuie să îndeplinească anumite condiții de calitate ce se referă în general la:

Timp – viteza cu care informația procesată ajunge la utilizator;

Conținut – atribute ce conferă valoare informației;

Formă – modalitatea în care ajung informațiile la utilizator;

Stocarea produselor informaționale : – în cadrul sistemelor informatice, aceasta activitate nu este o componentă foarte importantă. Este de fapt modalitatea de depozitare a datelor si a informațiilor într-un mod organizat pentru a putea fi utilizate ulterior. Atunci procesul de regăsire este necesar utilizatorilor prin rapiditatea și acuratețea sa. Suporturile utilizatorilor pentru stocarea datelor și informațiilor sunt în general magnetice sau optice.

Controlul performanțelor sistemului : – reprezintă activitatea cea mai importantă în cadrul sistemului informatic. Această activitate are în vedere următoarele elemente:

un sistem informatic crează un feed-back despre intrările, procesul și ieșirile sale precum și despre activitatea de stocare.

Feed-back-ul trebuie monitorizat și evaluat pentru a determina dacă sistemul urmează să-și atingă scopul prin performanțele sale.

Feed-back-ul va trebui utilizat pentru a efectua ajustări în activitatea sistemului pentru a-i corecta deficiențele.

I.2. Software cu sursă deschisa (open-source software)

Ritmul alert în care apar noutăți în lumea tehnologiei ne obligă într-o oarecare măsură să ținem pasul. Dacă până acum 20 de ani la noi în țară abia erau cunoscute ideile de telefon mobil și computer, astăzi nu ne mai descurcăm fără ele. Ba mai mult, telefoanele mobile au devenit atât de dezvoltate încât purtăm în buzunare un dispozitiv ce ne ajută să ținem legătura cu familia și prietenii prin apeluri, mesaje, internet.

Programele (software-urile) cu sursă deschisă sunt programele dezvoltate de companii sau de comunități, ce sunt date spre folosire sub o licență liberă, ceea ce permite utilizatorilor accesul la codul sursă.

În lista programelor open-source se află sistemul de operare Linux, browser-ul de internet Mozilla Firefox, suita office Apache OpenOffice.

Software-ul open-source este caracterizat de libertatea pe care o oferă utilizatorilor săi pentru a fi copiat, utilizat, redistribuit, îmbunătățit. Un program este open-source dacă întrunește următoarele patru forme de libertate :

Libertatea 0: este libertatea de a utiliza programul în orice scop;

Libertatea 1: este libertatea de a studia modulul de funcționare a programului pentru a-l putea adapta propriilor nevoi (open source asigură accesul la întregul cod-sursă);

Libertatea 2: este libertatea de redistribuire a copiilor pentru ajutarea tuturor utilizatorilor;

Libertatea 3: este libertatea de a îmbunătății programul și de a transmite mai departe versiunea îmbunătățită, în folosul întregii societăți. Acest lucru necesită accesul la codul-sursă.

Aceste libertăți mai înseamnă și faptul că folosirea unui astfel de soft nu implică plăți. De asemenea există posibilitatea modificării și folosirii atât în scop personal cât și profesional sau educativ.

Pentru ca libertățile menționate să fie reale, ele trebuie să fie irevocabile, atât timp cât nu se comite vreo ilegalitate. Există și anumite reguli acceptabile privind redistribuirea unui soft liber: de exemplu copyleft este regula potrivit căreia, prin redistribuirea software-ului nu este permisă adăugarea de limitări libertăților fundamentale ale altor utilizatori. Această regulă nu contravine libertăților fundamentale, ci le protejează.

Software-ul liber nu înseamnă neapărat că este și necomercial (gratis). Un program liber trebuie să fie utilizabil și în scop comercial, și să fie disponibil pentru dezvoltare și distribuție comercială. Dezvoltarea comercială a software-ului liber nu mai este ceva neobișnuit, devenind chiar foarte importantă.

Uneori reglementările vamale și sancțiunile comerciale internaționale pot limita libertatea de a distribui în lume copii ale programelor. De obicei autorii de software nu au puterea de a ocoli sau depăși aceste restricții, dar pot, și trebuie să refuze impunerea de restricții utilizatorilor programelor create de ei. În acest mod, restricțiile nu vor afecta activitățile utilizatorilor aflați în afara jurisdicției statelor care le impun.

Discutând despre software-ul liber este indicat să se evite termeni ca „gratuit” sau „pe gratis”, întrucât acești termeni pot conduce la ideea că principala caracteristică a softului liber ar fi prețul, și nu libertatea sa.

De asemenea există controverse si critici aduse denumirii de “software cu sursă deschisă” (open source). Richard Stallman – părintele software-ului liber – critică tendința de folosire a termenului „open source” în câteva articole importante : „De ce „sursă deschisă” pierde ideea centrală a software-ului liber” și „De ce este preferabil conceptul de „software liber” celui de „software open source” ”. El susține că deși software-ul liber și „software-ul cu sursă deschisă” înseamnă același lucru, valorile morale pe care le scot în evidență cele două denumiri sunt diferite: „software liber” pune accentul pe libertatea totală transmisă utilizatorilor prin licența programului, iar „software cu sursă deschisă” accentuează doar avantajele de natură practică, comercială și materială.

I.3. Apache OpenOffice (AOO)

Apache OpenOffice (AOO), după cum am precizat mai sus, este o suita a aplicațiilor destinate productivității din cadrul open-source office. Este un proiect succesor OpenOffice.org și are în componență îmbunătățiri de la IBM Lotus Symphony.

În Imaginea 2 putem observa cum arată Apache OpenOffice versiunea 4.1.1 folosită în acest proiect.

Imaginea 2. Apache OpenOffice

Din aceasta suita va fi utilizată foaia de calcul pentru exportarea datelor din aplicație. În imaginea de mai jos (Imaginea 3) este afișată foaia de calcul.

Imaginea 3. OpenOffice Calc

I.4. Microsoft Office

Microsoft Office este o suită office de aplicații pentru desktop, servere și servicii pentru sistemele de operare Microsoft Windows și Apple OS X. În Figura 9 putem observa cum arată pachetul Microsoft Office Professional Plus 2013 pentru Microsoft Windows, iar în Figura 10 observam cum arată Microsoft Office: mac 2011 Home&Business și Microsoft Office: mac 2011 Home&Student.

Imaginea 4. Microsoft Office Professional Plus 2013

Din aceasta suita office se va utiliza pentru a exploata informațiile din aplicație, Microsoft Excel ce poate fi vizualizat în (Imaginea 5) de mai jos .

Imaginea 5. Microsoft Excel

I.5. Avantaje si dezavantaje Open Office;

Microsoft, mult timp, a dominat piața de software, însă, în ultimii ani, mișcarea open source a avansat semnificativ față de gigantul cu sediul la Washington. Una dintre cele mai de succes produse open source a fost OpenOffice. Apache OpenOffice este premier open source suita de software legate de birou.

Avantaje

Apache OpenOffice este un software open source, care este liber pentru a descărca și libertatea de a folosi. Acesta include procesare de text, calcul tabelar, prezentare, editare grafica vector și componente de gestionare a bazelor de date. Este ușor pentru începători să învețe să folosească, dar este suficient de puternic pentru a face sarcinile avansate utilizatori experimentați doresc. Este proiectat în așa fel încât comenzile și funcțiile de a efectua într-una componentă a activității de software pe întreaga suita.

Dezavantaje

Există o serie de potențiali dezavantaje la Apache OpenOffice, de asemenea. Formatul de document primar sprijinit de software-ul este formatul ODF, în timp ce forma cea mai comună utilizare este formatul DOC. OpenOffice poate deschide și edita fișiere în format DOC, dar ele nu sunt de suport primar. Software-ul open source, în general, are dezavantaj sale. Fără cerința de a crea un produs profitabil, dezvoltatorii de software open source s-ar putea să se concentreze mai mult asupra propriilor dorințe decât pe nevoile utilizatorului final. Software-ul open source creează, de asemenea, un potențial de utilizatori rău intenționați să introducă bug-uri și alte riscuri de securitate în codul.

Cap II. Studiu de piață, cerințe de dezvoltare și mediu de dezvoltare

II.1. Studiu de piață

Într-o companie ce deține o flota auto este nevoie de un program care să includă diferite aspecte ale mașinilor aflate în subordine. Este necesar ca un angajat al firmei să se ocupe de înregistrarea tuturor evenimentelor petrecute la fiecare mașină în parte. De exemplu fiecare mașină are un număr de înmatriculare, o marcă, un număr de șasiu, un an de fabricație, o copie de pe o factură de reparație sau revizie, detalii ce spun multe despre o mașina și trebuie stocate într-un fel sau altul. Dacă se încearcă ținerea unui biblioraft, acesta, în timp devine greoi de manevrat, se deteriorează, ajunge la sfârșit și se arhivează. Oricât de bine ar fi însemnate bibliorafturile, se pierde mult timp pentru a caută un detaliu. Înregistrarea detaliilor într-un program reduce timpul de căutare și eficientizează.

Cum timpul este esențial în zilele noastre, au apărut deja programe ce conțin detalii despre mașinile firmelor de transport de marfă național și internațional, de transport de pasageri, parcuri auto. Câteva exemple de aplicații ce mulate pe necesitățile acestor tipuri de firme sunt:

CFMS – Program parc auto este un software de management flota auto;

ParcAuto.Xecutive.SQL – este o soluție software pentru gestionarea operațiunilor legate de administrarea autovehiculelor, remorcilor și utilajelor unei organizații;

Autolog – monitorizarea unei flote auto prin GPS;

autoMinder – o soluție completă de management a parcului auto.

II.2. Cerințe de dezvoltare

Cerințele de dezvoltare a unei aplicații de management a unei flote auto trebuie să fie specifice pieței din Romania, să fie în conformitate cu legea, și să muleze pe nevoile fiecărei firme în parte. O astfel de aplicație trebuie să ofere eficiență, productivitate, prelucrarea cu ușurință a datelor, să țină cont de datele de expirare a documentelor ce au așa ceva și să aibă o modalitate de semnalizare, cu câteva zile înainte de expirarea. Aceste specificații sunt trebuie îndeplinite la nivel de utilizator, dar de asemenea, aplicația trebuie să treacă de partea de testare a dezvoltatorului. În cursul dezvoltării unei aplicații codul evoluează, dar prin teste se asigură faptul că acest cod modificat continuă să respecte cerințele impuse – adică este corect. Testarea aplicației permite dezvoltarea încrederii în funcționalitatea corectă a acesteia.

Există patru faze fundamentale ale metodologiilor ingineriei programării:

analiza (ce dorim să construim);

proiectarea (cum vom construi);

implementarea (construirea propriu-zisă);

testarea (asigurarea calității).

Faza de analiză

Această fază definește cerințele sistemului, independent de modul în care acestea vor fi îndeplinite. Aici se definește problema ce se dorește să fie rezolvată. Rezultatul acestei faze este documentul cerințelor, care trebuie să precizeze clar ce trebuie construit.

Faza de proiectare

Pe baza cerințelor din faza de analiză, acum se stabilește arhitectura sistemului: componentele sistemului, interfețele și modul lor de comportare:

Componentele sunt blocurile de construcție ale produsului. Acestea pot fi create de la zero sau reutilizate dintr-o bibliotecă de componente.

Componentele rafinează și capturează semnificația detaliilor din documentul cerințelor;

Interfețele ajută la îmbinarea componentelor. O interfață reprezintă granița dintre două componente, utilizată pentru comunicarea dintre acestea. Prin intermediul interfeței, componentele pot interacționa;

Comportamentul, determinat de interfață, reprezintă răspunsul unei componente la stimulii acțiunilor altor componente.

Documentul de proiectare descrie planul de implementare a cerințelor. Se identifică detaliile privind limbajele de programare, mediile de dezvoltare, dimensiunea memoriei, platforma, algoritmii, structurile de date, definițiile de tip globale, interfețele.

Faza de implementare

În această fază, sistemul este construit, ori plecând de la zero, ori prin asamblarea unor componente pre-existente. Pe baza documentelor din fazele anterioare, echipa de dezvoltare ar trebui să știe exact ce trebuie să construiască, chiar dacă rămâne loc pentru inovații și flexibilitate. De exemplu, o componentă poate fi proiectată mai restrâns, special pentru un anumit sistem, sau mai general, pentru a satisface o direcție de reutilizare.

Echipa trebuie să gestioneze problemele legate de calitate, performanță, biblioteci și debug. Scopul este producerea sistemului propriu-zis. O problemă importantă este îndepărtarea erorilor critice. Într-un sistem există trei tipuri de erori:

Erori critice: Împiedică sistemul să satisfacă în mod complet scenariile de utilizare. Aceste erori trebuie corectate înainte ca sistemul să fie predat clientului și chiar înainte ca procesul de dezvoltare ulterioară a produsului să poată continua;

Erori necritice: Sunt cunoscute, dar prezența lor nu afectează în mod semnificativ calitatea observată a sistemului. De obicei aceste erori sunt listate în notele de lansare și au modalități de ocolire bine cunoscute;

Erori necunoscute: Există întotdeauna o probabilitate mare ca sistemul să conțină un număr de erori nedescoperite încă. Efectele acestor erori sunt necunoscute. Unele se pot dovedi critice, altele pot fi rezolvate cu patch-uri sau eliminate în versiuni ulterioare.

Faza de testare

Calitatea produsului software este foarte importantă. Multe companii nu au învățat însă acest lucru și produc sisteme cu funcționalitate extinsă, dar cu o calitate scăzută. Este mai simplu să-i explici clientului de ce lipsește o anumită funcție decât să-i explici de ce produsul nu este performant. Un client satisfăcut de calitatea produsului va rămâne loial firmei și va aștepta noile funcții în versiunile următoare.

III.3. Microsoft Visual Studio

Microsoft Visual Studio reprezintă un mediu de dezvoltare integrat (integrated development environment – IDE) de la Microsoft. Acesta poate fi folosit pentru a dezvolta aplicații consolă și aplicații cu interfață grafică pentru toate platformele suportate de Microsoft Windows (de exemplu: .NET Framework, Windows Mobile).

În tabelul de mai jos (Tabelul 1) se poate observa istoricul versiunilor Microsoft Visual Studio.

Tabelul 1. Istoricul versiunilor Microsoft Visual Studio

Anterior versiunii Visual Studio 4.0 a existat Visual Basic 3, Visual C++, Visual FoxPro și Source Safe ca și produse independente.

Microsoft Visual Studio oferă editor, compilator/debugger și mediu de proiectare (designer) pentru mai multe limbaje de programare. Limbaje de programare incluse: Microsoft Visual C++, Microsoft Visual C#, Microsoft Visual Basic, Microsoft Visual Web Developer, Team Foundation Server.

Limbaje anterioare: Visual FoxPro (eliminat în 2007), Visual SourceSafe (întrerupt începând cu Visual Studio 2008), Microsoft Visual J++/ Microsoft Visual J # (întrerupt începând cu Visual Studio 2008), Visual InterDev (înlocuit cu Microsoft Visual Web Developer).

Pe lângă limbajele amintite anterior, Microsoft Visual Studio oferă suport și pentru alte limbaje, cum ar fi M, Python, Ruby. De asemenea, sprijină XML/XSLT, HTML/XHTML, JavaScript și CSS.

Visual studio este oferit în mai multe variante: Express, Professional, Premium, Ultimate, Test Professional.

Visual FoxPro este un limbaj de programare orientat obiect produs de Microsoft. Este derivat din FoxPro (inițial cunoscut sub numele de FoxBASE) care era produs de Fox Software din anul 1984. Acest conținea cel mai rapid motor de baze de date pentru PC disponibile la acea vreme. Fox Technologies a fuzionat cu Microsoft in anul 1992 iar din acel moment software-ul a dobândit caracteristici suplimentare și prefixul „Visual”.

Motorul de baze de date a devenit cunoscut ca Microsoft Jet Database Engine care era folosit de Microsoft Access. Ultima versiune – FoxPro 2.6 – era funcțional pe MAC OS, DOS, WINDOWS și UNIX.

Prima versiune de „Visual”, Visual FoxPro 3.0 a fost redus la a funcționa decât pe Mac și Windows, iar versiunile ulterioare au fost compatibile doar pe Windows. Versiunea actuala de Visual FoxPro este COM-base iar Microsoft a declarat că nu vor mai dezvolta un Microsoft .NET pentru această versiune. Ultima versiune a Microsoft Visual FoxPro, versiunea 9.0, a fost lansată în 2004 și ulterior, în 2010 actualizată, aceasta fiind versiunea finală a acestui produs. Istoricul versiunilor Visual FoxPro poate fi observat in tabelul de mai jos (Tabelul 2).

Tabelul 2. Istoricul Visual FoxPro

În cele ce urmează vor fi prezentate careva sintaxe simple de cod din Visual FoxPro:

Exemplul simplu ce se întâlnește la fiecare început de curs de programare „Hello World”:

Versiuea 1:

MESSAGEBOX ("Hello World")

Versiunea 2:

? "Hello World"

Creare obiect; afișare „Hello World” (Imaginea 5):

loForm = CREATEOBJECT("HiForm")

loForm.Show(1)

DEFINE CLASS HiForm AS Form

AutoCenter = .T.

Caption = "Hello, World"

ADD OBJECT lblHi as Label ;

WITH Caption = "Hello, World!"

ENDDEFINE

Imaginea 6. Afișare text în Microsoft Visual FoxPro

Manipularea datelor:

Limbajul are comenzi extinse de manipulare a bazelor de date și de indexare. Secțiunea de „Help” in Visual FoxPro (VFP) 9 conține câteva sute de comenzi și linii pentru așa ceva. Imaginea 6 „explică” vizual codul.

* Crearea unui tabel

CREATE TABLE randData (idata I)

* Popula cu date aleatoare, folosind xBase și comenzi SQL DML

Pentru i = 1 la 50

Adăugare BLANK

REPLACE idata CU (RAND () * 100)

INSERT INTO randData (idata) VALORI (RAND () * 100)

ENDFOR

* Puneți un index structural pe datele

INDEX ON idata TAG idata

CLOSE ALL

* Ecran comandat date folosind comenzi xBase stil

UTILIZARE randData

SET PENTRU idata

GO TOP

Lista următoare 10 && Primul 10

GO BOTTOM

SKIP -10

LISTA REST && Ultimele 10

CLOSE ALL

* Vezi date folosind comenzi SQL DML comandat

SELECT *;

DIN randData;

ORDER BY idata DESCENDING

Imaginea 7. Tabel creat în Visual FpxPro

Cap III. Dezvoltarea aplicației „Sistem Informatic Pentru Managementul Flotelor din Domeniul Auto”

III.1. Prezentarea aplicației din punctul de vedere al utilizatorului

În introducerea va fi explicat în amănunt despre ce este vorba și la ce se reduce o flotă de mașini. Aplicația este un software de management a unei flote auto, de unde și denumirea: „Sistem Informatic Pentru Managementul Flotelor din Domeniul Auto” . Se adresează atât companiilor ce dețin un număr mare de mașini, clasate pe mai multe puncte de lucru, cât și companiilor mici, cu un singur punct de lucru și câteva mașini în subordine. De asemenea, cu câteva modificări, în funcție de cerere, aplicația poate să devină utilă și unui parc auto.

Programul vine în întrajutorarea angajaților responsabili printre altele și de buna-stare a mașinilor firmei la care lucrează. Cu o interfață simplă și prietenoasă, operatorul poate găsi informațiile necesare referitoare la o anumită mașină într-un timp foarte scurt. Se evită astfel căutatul hârtiilor prin diferite dosare, se află ușor data de expirare a reviziilor sau pur și simplu care a fost valoarea ultimei facturi de reparație.

La deschiderea aplicației utilizatorul se întâlnește cu fișa care are în componență următoarele (după cum se poate observa în Figura 18):

Prima coloană – deși nu are un nume, se poate observa că pe această coloană sunt numerotate mașinile în ordinea in care au fost introduse (ex: 9);

A doua coloană conține numărul de înmatriculare al mașinii (ex: PH-10-TXI);

A treia coloană are în componență marca automobilului (ex: MAN);

A patra coloană este coloana șasiului (ex: WMAH06ZZ75M412569);

A cincea coloană conține anul fabricației mașinii (ex: 2005);

A șasea coloană are în componență data de expirare a RCA-ului (ex: 05.12.2015);

A șaptea coloană este reprezentată de data de expirare a rovinietei (ex: 04.02.2016);

A opta coloană conține data de expirare a ITP-ului (ex: 05.02.2016);

A noua coloană are în componență data de expirare a copiei conforme eliberate de ARR(ex: 01.11.2015);

A zecea coloană conține data de expirare a licenței de transport eliberată de ARR (ex: 01.11.2016);

A unsprezecea coloană este reprezentată de data de descărcare de informației din tahograf care se face o dată la 90 de zile iar datele descărcate trebuie păstrate o perioadă minimă de un an de zile pentru inspecție (ex: 03.05.2017);

A douăsprezecea coloană conține data de descărcare a informației de pe cardul ce este introdus în tahograf, informație ce trebuie descărcată la 28 de zile și păstrată o perioadă de minim un an de zile pentru inspecție (ex: 17.06.2015).

Așa cum se poate observa în Imaginea 8, unele celule, pe diferite coloane, sunt colorate cu roșu. Aceasta este modalitatea prin care programul își anunță utilizatorul cu 7 zile înainte faptul că anumite date sunt pe cale să expire. După cum se observă datele din program sunt deja expirate.

Imaginea 8. Expirări documente auto

Pentru a demonstra funcționalitatea programului, se va modifica data de expirare a extragerii informațiilor de pe card, pentru mașina înregistrată cu numărul 9 (Imaginea 9).

Imaginea 9. Expirări documente auto – înregistrarea numărul 9

Pentru a modifica detaliile oricărei intrări se apasă pe butonul „Modificare” ce deschide o fereastră în care este permisă editarea și actualizarea datelor (Imaginea 10).

Imaginea 10. Actualizare date

În Imaginea 9, la înregistrarea 9 se poate observa că data de extragere a informațiilor de pe card este de 17.06.2015. În Imaginea 9 această dată a fost modificată cu data de 03.07.2015. Deoarece această dată se încadrează in cele 7 zice de avertizare a expirării datei, va apărea tot cu roșu în fișa de „Expirări documente auto” (Imaginea 11). Dar dacă se introduce o data mai înaintată (ex: 10.07.2015) se va putea observa că celula nu va mai fi roșie (Imaginea 12).

Imaginea 11. Expirări documente auto – modificări înregistrare 9

Imaginea 12. Expirări documente auto – modificări înregistrare 9

De asemenea în fișa de „Expirări documente auto” de poate adăuga o înregistrare și se poate șterge (Imaginea 13).

Imaginea 13. Expirări documente auto – adăugare

După cum se vede în partea din dreapta jos a programului (Imaginea 14) există două butoane: Export openOffice și Terminat.

Imaginea 14. Expirări documente auto – Export openOffice și Terminat

Apăsând butonul Export openOffice se va deschide o fereastră (Imaginea 15) în care se cere numele sub care va fi salvat fișierul în Apache OpenOffice.

Imaginea 15. Expirări documente auto – Exportare fișier

După cum se observă, exportul se face pe directorul C în folderul Export, creat în prealabil. Tot ce se poate exporta din acest program va fi găsit in fișierul Export.

În partea de sus a programului se poate observa un meniu cu 3 secțiuni: Fișier, Nomenclatoare și Terminat. Terminat, după cum îi spune și numele, va închide programul. Dacă se apasă pe Fișier se va deschide un mini meniu cu două opțiuni: Facturi și Alte date.

Facturi va deschide o fișă numită Introducere Facturi ce include:

Prima coloană – conține numărul de factură prin care s-a realizat o reparație sau o revizie asupra unei mașini (ex: 3026663);

A doua coloană – conține data facturii (ex: 11.01.2012);

A treia coloană – conține furnizorul la care s-a făcut revizia sau reparația (ex: Motormania);

A patra coloană – conține valoarea facturii (ex: 1.190,34);

A cincea coloană – conține tipul operațiunii care s-a realizat asupra mașinii (ex: revizie);

A șasea coloană – conține numărul de înmatriculare al autoturismului supus reviziei (ex: PH-64-LGR);

A șaptea coloană – conține secția pe care este repartizat autoturismul supus reviziei (ex: brutărie).

În partea dreaptă a acestui tabel, există Detaliu Factură în care sunt specificate detalii reviziei și valoarea (ex: Operație – Arc Dr.spate; Valoare – 1.190,34). Aceste lucruri se pot observa în figura de mai jos Imaginea 16.

Imaginea 16. Introducere Facturi

În Imaginea 17 se poate observa, în secțiunea Detaliu Factură, un număr de operațiuni mai mare, fiind vorba despre o reparație, nu doar o revizie.

Imaginea 17. Introducere Facturi – Detaliu Factura, Operație

De asemenea se poate observa în dreptul coloanei de Valoare că pentru fiecare operație în parte are o anumită valoare.

În partea de jos a programului se pot remarca 4 săgeți:

|< : apăsarea aceste săgeți va poziționa utilizatorul pe prima intrare din tabel;

< : apăsarea aceste săgeți va poziționa utilizatorul pe următoarea poziție din tabel, de jos în sus;

> : apăsarea aceste săgeți va poziționa utilizatorul pe următoarea poziție din tabel, de sus în jos;

>| : apăsarea aceste săgeți va poziționa utilizatorul pe ultima intrare din tabel;

Tot în partea de jos a programului se pot observa două butoane de export și anume Export xl și Export openoffice (Imaginea 18) ceea ce înseamnă că exportarea datelor se poate face atât în Apache OpenOffice cât și în Microsoft Excel. Folder-ul de exportare a datelor rămâne neschimbat.

Imaginea 18. Introducere Facturi – Detaliu Factura, Operație și Valoare

Butonul Filtru oferă posibilitatea utilizatorului de a alege o anumită perioadă de timp în care vrea sa verifice detaliile de facturare ( Imaginea 19 și Imaginea 20).

Imaginea 19. Introducere Facturi – Alegere Filtru

Imaginea 20. Introducere Facturi – Executare Filtru

La meniul deschis de Fișier, înafară de Facturi, există și Alte date care va afișa Expirări Documente Auto.

La apăsarea celui de-al doilea buton din meniul principal, Nomenclatoare, acesta va deschide un alt meniu: Auto, Operații, Secții, Furnizori.

Auto va afișa un Nomenclator Auto în care sunt afișate numerele de înmatriculare ale mașinilor și numele șoferilor acestora așa cum se poate observa în Imaginea 21.

Imaginea 21. Nomenclator auto

După cum se poate observa în Imaginea 21, există posibilitatea de adăugare, modificare și ștergere (Imaginea 22. Nomenclator operații – Modificare).

Imaginea 22. Nomenclator operații – Modificare

Operații va afișa un Nomenclator operații ce conține toate operațiile ce au fost efectuate asupra mașinilor din firmă. Acest lucru poate fi observat în Imaginea 23.

Imaginea 23. Nomenclator operații

După cum se poate observa în Imaginea 23, există posibilitatea de adăugare, modificare și ștergere (Imaginea 24. Nomenclator operații – Modificare).

Imaginea 24. Nomenclator operații – Modificare

Secții va afișa un Nomenclator secții ce conține toate secțiile în care sunt distribuite mașinile companiei. Acest lucru poate fi observat în Imaginea 25.

Imaginea 25. Nomenclator secții

Putem observa în Imaginea 25, că există posibilitatea de adăugare, modificare și ștergere (Imaginea 26, Nomenclator secții – Modificare).

Imaginea 26. Nomenclator secții – Modificare

Furnizori va afișa un Nomenclator Furnizori ce conține toți furnizorii de piese sau de servicii necesare mașinilor din dotare. Acest lucru poate fi observat în Imaginea 27.

Imaginea 27. Nomenclator Furnizori

Putem observa în Imaginea 27, există posibilitatea de adăugare, modificare și ștergere (Imaginea 28.Nomenclator Furnizori – Modificare)

Imaginea 28. Nomenclator Furnizori – Modificare

III.2. Prezentarea aplicației din punctul de vedere al dezvoltatorului

O baza de date este formată din mai multe tabele cu diferite legături.

Pentru a putea stabili legături între tabele , în fiecare tabel se definesc chei de identificare:

Cheia primară – un câmp sau ansamblu de câmpuri care identifică unic înregistrările;

Cheia secundară (cheie străină)- formată dintr-un câmp sau mai multe câmpuri dintr-un tabel , care sunt folosite ca cheie principală în alt tabel, valorile câmpurilor din cheie fiind identice în ambele tabele.

Legătura dintre tabelele unei baze de date se realizează prin mecanismul de propagare a cheilor (tabel conducător-tabel condus).

Relația este o legătură dintre un câmp sau un ansamblu de câmpuri dintr-un tabel (cheia primară) și câmpurile corespunzătoare din alt tabel (cheia secundară).

Tipurile de legături (relații) dintre două tabele pot fi:

legătura de tip unu la unu (1:1) – unei înregistrări dintr-o tabelă îi corespunde o singură înregistrare în cealaltă tabelă;

legătura de tip unu la mai mulți (1:M sau 1:∞) – unei înregistrări dintr-o tabela îi corespund mai multe înregistrări în cealaltă tabelă;

legătura de tip mulți la mulți (M:N sau ∞:∞ ) – mai multor înregistrări dintr-o tabelă îi corespund mai multe înregistrări în cealaltă tabelă.- nu se folosește: se creează mai multe tabele între care se vor stabili tipuri de relații unu la mai mulți.

În figura de mai jos (Imaginea 29) se pot observa două din cele trei tipuri de relații.

Imaginea 29. Relațiile între tabelele din baza de date

Așa cum este explicat și mai sus fiecare tabel are o cheie prin intermediul căreia se leagă de o alta tabelă.

În această aplicație, relațiile între tabele sunt de forma unu la unu și unu la mulți. Baza de date este compusa din următoarele tabele: factph, factpc, noperații, dateauto, nfurnizori, nsectii, șoferi, nauto.

Tabelul factph are o relație de tip 1:M cu tabelul factpc după cum putem observa în figura de mai jos Imaginea 30).

Imaginea 30. Legătura de tip 1:M (factph-factpc)

Tabelele factpc-noperatii, factph-dateauto, factph-nfurnizori, factph-nsectii, au o relație de tip 1:1 după cum se poate observa în figurile de mai jos (Imaginea 31, Imaginea 32, Imaginea 33, Imaginea 34).

Imaginea 31. Legătura de tip 1:1 (factpc-noperatii)

Imaginea 32. Legătura de tip 1:1 (factph-dateauto)

Imaginea 33. Legătura de tip 1:1 (factph-nfurnizori)

Imaginea 34. Legătura de tip 1:1 (factph-nsectii)

III.3. Exigențe asupra proiectului

Scopul

Se urmărește construirea unei aplicații ce poate oferi detalii esențiale și într-un timp foarte scurt legate de o anumită mașină. Se dorește dezvoltarea unei aplicație prietenoasă cu utilizatorul, simplă și eficientă.

Exigențe funcționale:

Adăugarea, Modificarea, Ștergerea, Export xl, Export openoffice, Filtru, Terminat

Imaginea 35. Evidențierea butoanelor de Adăugare, Modificare, Ștergere

Imaginea 36. Evidențierea butoanelor de Export xl, Export openoffice, Filtru, Terminat

Exigențe nefuncționale:

Structura aplicației trebuie să îndeplinească anumite cerințe și să fie practică utilizatorului :

Să prezinte utilizatorului explicit detalii despre mașina căutată;

Extragerea cu ușurință a documentației fizice de care este nevoie;

Modalități de îmbunătățiri a aplicației

Deși aplicația, așa cum este ea în momentul de față, funcționează deja într-o firma pe care am denumit-o „X”, mai există loc de îmbunătățiri.

În primul rând, se mai poate crea un tabel în care să existe, pe prima coloană, numele conducătorilor mașinilor deținute de firma „X”, iar pe cea de-a doua coloană, data expirării analizelor periodice (în acest caz este vorba de șoferii profesioniști).

Gândind pe termen lung și la un nivel înalt al dezvoltării aplicației, aceasta are potențial și poate fi ridicată la nivelul la care să se adreseze transportatorilor de mărfuri și mărfuri perisabile sau animale vii, de produse periculoase, de persoane. Acest lucru implică crearea de noi tabele ce conți și alte acte necesare, pe lângă licența de transport, diagrama tahograf și card.

Acestea sunt câteva din actele suplimentare necesare unui șofer pentru diverse tipuri de transport:

Documentul de însoțire a mărfii (aviz, factura) – numărul si data întocmirii documentului;

În cazul transportului internațional este nevoie de CMR (Convention relative au contrat de transport international de marchandises par route) – numărul si data întocmirii documentului;

Certificatul de atestare profesională pentru șoferi, conform Acordului european referitor la transportul rutier internațional al mărfurilor periculoase (A.D.R.), pentru clasa produsului transportat – data expirării certificatului și o modalitate de a fi anunțat cu minim doua săptămâni înainte.

Autorizația eliberată de Comisia Națională pentru Controlul Activităților Nucleare și agrearea autovehiculului, dacă este cazul – numărul documentului, data de expirare a valabilității acestuia și semnalul de avertizare.

O alta îmbunătățire ce poate fi adusă aplicației este realizarea unei metode de anunțare automată, după un predefinit standard, dacă o anumită piesă este pe cale să iasă din garanție, în funcție de numărul de km parcurși comparați cu numărul de km garantați de funcționare.

Concluzii

Cum în ziua de azi tehnologia a devenit o necesitate, un program ce-ti poate oferi mai multe detalii despre lucrurile care te interesează este preferat în locul anexelor fizice, a copiilor după documente ce au o data de expirare sau a unui biblioraft care, deși aranjat in ordinea documentației necesare, este totuși greu si migălos de umblat prin el anualelor și culegerilor de teste, aceasta platformă educațională a venit să vă sară în ajutor.

Aplicația prezentată în această lucrare, „Sistem Informatic Pentru Managementul Flotelor din Domeniul Auto”, dorește să întindă o mană de ajutor utilizatorilor ei. Ușor de folosit, aceasta aplicație scurtează timpul de găsire a informațiilor necesare șoferilor, despre mașinile pe care aceștia le conduc zi de zi.

După cum a explicat in „Modalități de îmbunătățire a aplicației”, este loc de dezvoltare a acestei aplicații. În funcție de cererea fiecărei firme și de restricțiile impuse de program, aplicația poate fi modelata după nevoie.

Așa cum am mai precizat, lucrez în domeniu și am de a face cum diverse cereri referitoare la termenul de valabilitate al RCA-ului, la termenul descărcare s cardului cu informațiile de parcurgere sau la reparațiile survenite in ultima perioada pentru o mașină. Consider ca aceasta aplicație mi-a ușurat munca deoarece nu mai stau sa caut in biblioraftul de asigurări, pe urma sa caut factura dintr-o anumita luna pentru a vedea ce reparație/revizie a fost făcută. Cu aceasta aplicație intru repede si aflu tot ce am nevoie atât eu cat si cei din jurul meu (ex. șoferul mașinii, asiguratorul sau furnizorul)

Bibliografie :

Manual of Visual Fox Pro, Gilmer O. Mendoza Manzano;

Manual de Introduction a Visual FoxPro, Leonardo Daniel Velasquez Fuentes;

Course of Visual FoxPro, Mauricio Cano

Visual FoxPro – Teorie și aplicații (anul apariției 2009, Editura Else) – Eugen Popescu, Doina Preda, Mihaela Codres, Ecaterina Boarna, Daniel Codres, Sofia Vitelaru;

Inițiere în FoxPro (anul apariției 2002, Editura Arves) – Elvira Nicoleta Bazdoaca, Nicu George Bazdoaca, Stoica Gradinaru, Alina Inisor;

Programare în FoxPro pentru Windows (anul apariției 1999, Editura Didactica și Pedagogica);

https://msdn.microsoft.com/en-us/library/abdw8wsc%28v=vs.80%29.aspx;

https://ro.wikipedia.org/wiki/Microsoft_Visual_Studio;

https://en.wikipedia.org/wiki/Main_Page.

ANEXA 1 – Imagini

Imaginea 1 – pag. 7 a fost creata în paint

Imaginea 2 – pag, 11 a fost creata cu ajutorul instrumentului de decupare (snipping tool) ce se gaseste pe windows 7 si windows 8 si este salvata cu extensia *.jpeg

Imaginea 3 – pag. 11 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 4 – pag. 12 a fost descărcată de pe internet (google imagini)

Imaginea 5 – pag. 12 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 6 – pag. 21 a fost descărcată de pe internet (google imagini)

Imaginea 7 – pag. 22 a fost descărcată de pe internet (google imagini)

Imaginea 8 – pag. 24 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 9 – pag. 25 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 10 – pag. 26 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 11 – pag. 27 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 12 – pag. 27 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 13 – pag. 28 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 14 – pag. 28 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 15 – pag. 29 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 16 – pag. 30 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 17 – pag. 31 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 18 – pag. 32 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 19 – pag. 32 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 20 – pag. 33 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 21 – pag. 34 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 22 – pag. 35 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 23 – pag. 36 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 24 – pag. 37 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 25 – pag. 38 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 26 – pag. 39 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 27 – pag. 40 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 28 – pag. 41 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 29 – pag. 43 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 30 – pag. 44 a fost creata cu ajutorul instrumentului de decupare (snipping tool) si al paint-ului

Imaginea 31 – pag. 44 a fost creata cu ajutorul instrumentului de decupare (snipping tool) si al paint-ului

Imaginea 32 – pag. 45 a fost creata cu ajutorul instrumentului de decupare (snipping tool) si al paint-ului

Imaginea 33 – pag. 45 a fost creata cu ajutorul instrumentului de decupare (snipping tool) si al paint-ului

Imaginea 34 – pag. 46 a fost creata cu ajutorul instrumentului de decupare (snipping tool) si al paint-ului

Imaginea 35 – pag. 47 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

Imaginea 36 – pag. 48 a fost creata cu ajutorul instrumentului de decupare (snipping tool)

ANEXA 2 – Cod sursa

Exemplu de cod sursa :

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

*– Class: frmauto (d:\desktop\proiecte\facturi xp\reparatii\class\frmauto.vcx)

*– ParentClass: form

*– BaseClass: form

*– Time Stamp: 06/28/15 07:23:13 PM

*

DEFINE CLASS frmauto AS form

DataSession = 2

ScaleMode = 3

Height = 526

Width = 450

ShowWindow = 1

DoCreate = .T.

AutoCenter = .T.

BorderStyle = 3

Caption = ""

MaxButton = .F.

MinButton = .F.

Icon = "y:\graphics\icons\de la gabi\diverse\geometry.ico"

KeyPreview = .T.

HelpContextID = 62

BackColor = RGB(200,200,200)

chelpfile = ""

lromana = .F.

nsecundecontcrt = 0

ccaut = ""

linit = .T.

Name = "FRMCAMERE"

titlu = .F.

camp = .F.

valoare = .F.

ntablerecno = .F.

ADD OBJECT shape1 AS shape WITH ;

Top = 58, ;

Left = 3, ;

Height = 443, ;

Width = 441, ;

BackStyle = 0, ;

SpecialEffect = 0, ;

Name = "Shape1"

ADD OBJECT vcr1 AS vcr WITH ;

Top = 791, ;

Left = 1127, ;

Visible = .F., ;

TabStop = .F., ;

Name = "Vcr1", ;

cmdTop.Name = "cmdTop", ;

cmdPrior.Name = "cmdPrior", ;

cmdNext.Name = "cmdNext", ;

cmdBottom.Name = "cmdBottom", ;

Datachecker1.Name = "Datachecker1"

ADD OBJECT grdproduse AS grid WITH ;

ColumnCount = 2, ;

FontBold = .F., ;

FontSize = 12, ;

ChildOrder = "", ;

DeleteMark = .F., ;

HeaderHeight = 26, ;

Height = 434, ;

Left = 8, ;

LinkMaster = "", ;

Panel = 1, ;

ReadOnly = .T., ;

RecordMark = .T., ;

RecordSource = "", ;

RelationalExpr = "", ;

RowHeight = 19, ;

ScrollBars = 3, ;

TabIndex = 6, ;

Top = 63, ;

View = 0, ;

Width = 431, ;

HighlightBackColor = RGB(64,128,128), ;

HighlightForeColor = RGB(0,0,0), ;

HighlightStyle = 1, ;

Name = "grdProduse", ;

Column1.FontBold = .F., ;

Column1.FontSize = 12, ;

Column1.Alignment = 0, ;

Column1.ColumnOrder = 1, ;

Column1.Width = 112, ;

Column1.ReadOnly = .T., ;

Column1.Name = "Column1", ;

Column2.FontBold = .F., ;

Column2.FontSize = 12, ;

Column2.ColumnOrder = 2, ;

Column2.Width = 290, ;

Column2.ReadOnly = .T., ;

Column2.Name = "Column2"

ADD OBJECT frmauto.grdproduse.column1.header1 AS header WITH ;

FontBold = .T., ;

FontItalic = .F., ;

FontOutline = .F., ;

FontShadow = .F., ;

FontSize = 12, ;

FontStrikethru = .F., ;

FontUnderline = .F., ;

FontCondense = .F., ;

FontExtend = .F., ;

FontCharSet = 0, ;

Alignment = 2, ;

Caption = "Numar", ;

ForeColor = RGB(0,0,0), ;

BackColor = RGB(128,255,128), ;

Picture = "..\..\..\facturi\", ;

Name = "Header1"

ADD OBJECT frmauto.grdproduse.column1.text1 AS textbox WITH ;

FontSize = 12, ;

Alignment = 0, ;

BorderStyle = 0, ;

Margin = 0, ;

ForeColor = RGB(0,0,0), ;

BackColor = RGB(255,255,255), ;

Name = "Text1"

ADD OBJECT frmauto.grdproduse.column2.header1 AS header WITH ;

FontBold = .T., ;

FontSize = 12, ;

Alignment = 2, ;

Caption = "Sofer", ;

Name = "Header1"

ADD OBJECT frmauto.grdproduse.column2.text1 AS textbox WITH ;

FontSize = 12, ;

BorderStyle = 0, ;

Margin = 0, ;

ForeColor = RGB(0,0,0), ;

BackColor = RGB(255,255,255), ;

Name = "Text1"

ADD OBJECT behindscenes2 AS behindscenes WITH ;

Top = 791, ;

Left = 1102, ;

Height = 22, ;

Width = 25, ;

Picture = "w:\classes\bts.bmp", ;

Visible = .F., ;

Name = "Behindscenes2"

ADD OBJECT c_solutions1 AS c_solutions WITH ;

Top = 796, ;

Left = 1132, ;

Width = 12, ;

Name = "C_SOLUTIONS1"

ADD OBJECT cmdclose1 AS cmdclose WITH ;

Top = 502, ;

Left = 392, ;

Height = 21, ;

Width = 47, ;

Cancel = .T., ;

Name = "CMDCLOSE1"

ADD OBJECT shape2 AS shape WITH ;

Top = 28, ;

Left = 3, ;

Height = 30, ;

Width = 441, ;

BackStyle = 0, ;

SpecialEffect = 0, ;

Name = "Shape2"

ADD OBJECT shape3 AS shape WITH ;

Top = 1, ;

Left = 3, ;

Height = 27, ;

Width = 441, ;

BackStyle = 0, ;

SpecialEffect = 0, ;

Name = "Shape3"

ADD OBJECT lblantet AS label WITH ;

AutoSize = .F., ;

FontBold = .T., ;

FontName = "MS Sans Serif", ;

FontSize = 12, ;

Alignment = 2, ;

BackStyle = 0, ;

Caption = "Nomenclator auto", ;

Height = 22, ;

Left = 43, ;

Top = 5, ;

Width = 338, ;

TabIndex = 10, ;

ForeColor = RGB(0,0,0), ;

Name = "lblAntet"

ADD OBJECT image1 AS image WITH ;

Picture = "y:\graphics\icons\de la gabi\diverse\geometry.ico", ;

Stretch = 1, ;

BackStyle = 0, ;

Height = 22, ;

Left = 7, ;

Top = 4, ;

Width = 28, ;

Name = "Image1"

ADD OBJECT cmdadd AS commandbutton WITH ;

AutoSize = .F., ;

Top = 33, ;

Left = 86, ;

Height = 22, ;

Width = 70, ;

Caption = "Adaugare", ;

Name = "cmdAdd"

ADD OBJECT cmdmodi AS commandbutton WITH ;

AutoSize = .F., ;

Top = 33, ;

Left = 164, ;

Height = 22, ;

Width = 73, ;

Caption = "Modificare", ;

Name = "cmdModi"

ADD OBJECT cmddel AS commandbutton WITH ;

AutoSize = .F., ;

Top = 33, ;

Left = 242, ;

Height = 22, ;

Width = 73, ;

Caption = "Stergere", ;

Name = "cmdDel"

*– sets the label for the items grid to display the order number.

PROCEDURE setlabel

SELECT NAuto

ENDPROC

PROCEDURE delrec

nSelect = Select()

SELECT NAuto

DO FORM frmSterg ;

WITH [Stergere Reper ], ;

[Stergeti ] + Allt(NAuto.AutoNr)+" ?" ;

TO nRasp

IF nRasp = 6 && Da

DELETE

ENDIF

SELECT (nSelect)

THISFORM.Refresh

ENDPROC

PROCEDURE initializari

WITH THIS

WITH .grdProduse

.RecordSource = [NAuto]

.Column1.ControlSource = [IIF(ISDIGIT(SUBSTR(ALLTRIM(NAuto.AutoNr),2,1)), LEFT(ALLTRIM(NAuto.AutoNr),1)+"-"+SUBSTR(ALLTRIM(NAuto.AutoNr),2,3)+"-"+RIGHT(ALLTRIM(NAuto.AutoNr),3), LEFT(ALLTRIM(NAuto.AutoNr),2)+"-"+SUBSTR(ALLTRIM(NAuto.AutoNr),3,2)+"-"+RIGHT(ALLTRIM(NAuto.AutoNr),3))]

.Column2.ControlSource = [NAuto.Sofer]

.SetFocus

ENDWITH

.Refresh

ENDWITH

ENDPROC

PROCEDURE editreper

PARAMETER nTip

* Adaugare / modificare inregistrare

DO FORM frmAutoADD ;

WITH nTip

SELECT NAuto

SCATTER MEMVAR

THISFORM.Refresh

ENDPROC

PROCEDURE tastaapasata

LPARAMETERS nKeyCode, nShiftAltCtrl

WITH THISFORM

DO CASE

CASE nKeyCode = -4 .AND. nShiftAltCtrl = 0 && F5 (mai bine decat Enter)

.EditReper(RecNo())

CASE nKeyCode = 22 .AND. nShiftAltCtrl = 0 && Ins

.EditReper(0)

CASE nKeyCode = 7 .AND. nShiftAltCtrl = 0 && Del

.DelRec

OTHERWISE

ENDCASE

ENDWITH

ENDPROC

PROCEDURE Load

* Pentru VCR1.Init – Necesita o tabela deschisa

* va fi inchisa automat in frmJurnalC.OpenFile

CLOSE DATA

USE NAuto

ENDPROC

PROCEDURE Deactivate

IF TYPE("THIS.c_solutions1") = "O" THEN

THIS.c_solutions1.restoreHelp

ENDIF

ENDPROC

PROCEDURE Activate

SELECT NAuto

* THISFORM.Initializari

WITH THISFORM

.Refresh

.c_Solutions1.saveHelp

.grdProduse.SetFocus

ENDWITH

ENDPROC

PROCEDURE Init

WITH THIS

.BorderStyle = 2 && Fixed dialog

.Initializari

ENDWITH

SELECT NAuto

SET ORDER TO

ENDPROC

PROCEDURE Refresh

THIS.SetLabel

ENDPROC

PROCEDURE Unload

CLOSE DATA

ENDPROC

PROCEDURE Error

LPARAMETERS nError, cMethod, nLine

MessageBox(THIS.Name + [ ] + cMethod + str(nLine) + [ ] + message() + STR(nError))

CANCEL

ENDPROC

PROCEDURE KeyPress

LPARAMETERS nKeyCode, nShiftAltCtrl

THISFORM.TastaApasata ( nKeyCode, nShiftAltCtrl )

ENDPROC

PROCEDURE vcr1.Click

IF Upper(Select()) # [NAuto]

SELECT NAuto

ENDIF

ENDPROC

PROCEDURE vcr1.cmdTop.Click

DoDefault()

ENDPROC

PROCEDURE vcr1.cmdPrior.Click

DoDefault()

ENDPROC

PROCEDURE vcr1.cmdNext.Click

DoDefault()

ENDPROC

PROCEDURE vcr1.cmdBottom.Click

DoDefault()

ENDPROC

PROCEDURE grdproduse.RightClick

THISFORM.RightClick

ENDPROC

PROCEDURE grdproduse.AfterRowColChange

LPARAMETERS nColIndex

WITH THISFORM

.Refresh

ENDWITH

THISFORM.SetLabel

ENDPROC

PROCEDURE text1.KeyPress

LPARAMETERS nKeyCode, nShiftAltCtrl

DO CASE

CASE nKeyCode = 13

THISFORM.TastaApasata( -4, 0)

ENDCASE

ENDPROC

PROCEDURE text1.KeyPress

LPARAMETERS nKeyCode, nShiftAltCtrl

DO CASE

CASE nKeyCode = 13

THISFORM.TastaApasata( -4, 0)

ENDCASE

ENDPROC

PROCEDURE behindscenes2.Click

WAIT WIND [Fisier Help: ]+ THISFORM.cHelpFile

HELP

ENDPROC

PROCEDURE cmdadd.Click

SELECT NAuto

THISFORM.EditReper(0)

ENDPROC

PROCEDURE cmdmodi.Click

SELECT NAuto

THISFORM.EditReper(RECNO())

ENDPROC

PROCEDURE cmddel.Click

SELECT NAuto

THISFORM.Delrec()

ENDPROC

ENDDEFINE

*

*– EndDefine: frmauto

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

Similar Posts