CATEGORII DOCUMENTE |
< GESTIUNE ASOCIATIE DE LOCATARI >
INTRODUCERE
Versiunea de FoxPro 2.5 a aparut , ca produs comercial , in primavara anului 1993.
Ca limbaj tehnologic din familia Xbase a reprezentat prima realizare a strategiei de portare intre platforme , el putand fi exploatat atat sub sistemul de operare DOS 6,-. , cat si sub Windows (95 , NT ).. Acest lucru face din FoxPro unul din principalii sustinatori ai suportului multiplatforma de exploatare pentru aplicatii de baze de date , mai ales pentru cei care au fost legati de aplicatii Xbase.
In acelasi timp , FoxPro 2.5 continua sa extinda reputatia deja castigata a produsului pentru viteza , mai ales in situatia multiutilizator.Unele tipuri de cereri si activitati cu multe operatii de intrare-iesire sunt de trei pana la patru ori mai rapide decat erau in FoxPro 2.0 , iar acel produs era deja recunoscut ca lider in aceasta privinta.
Dar viteza de executie nu este totul. Astazi standardele de proiectare ale interfetei cu utilizatorul impun instrumente performante orientate vizual , ca sa permita de asemenea , o dezvoltare rapida a aplicatiilor , in vederea automatizarii pe cat posibil a intretinerii de platforme diferite a ecranelor , rapoartelor si a meniurilor.
FoxPro permite si exploatarea de baze de date non-Xbase , precum si a celor fara o orientare speciala catre gestiunea bazelor de date.
Din aceste considerente , am elaborat lucrarea de fata sub acest limbaj.
Prezentare
Programul este realizat de Ciobanu Ana, eleva in clasa a XII-a A a Liceului Teoretic "Grigore Moisil" si tine evidenta unei asociatii de locatari, numita "VENUS".
Programul contine campurile:
* NR_CRT;
* NUME;
* ADRESA;
* NR_PERS;
* PLATA_LUN;
* RESTANTE;
* PENALIZARI;
* NR_ZILE;
* TOTAL.
Campurile PLATA_LUN, TOTAL si PENALIZARI vor fi calculate pe parcursul programului cu ajutorul bazei de date INFO.
Programul va folosi o singura baza de date intitulata ASOCIATI.DBF. in care sunt trecute:
Numele si prenumele persoanei;
Adresa;
Nr. de persoane din apartament;
Suma restanta;
Nr. zile restante.
Totalul a fost retinut intr-o variabila 'S'.
Cerinte Hardware si Software
Programul nu necesita un calculator performant. Este compatibil cu orice calculator capabil sa ruleze Programul Visual Fox Pro.
Pentru a lucra in conditii optime este preferabil sa fie folosit Visual Fox Pro versiunea 6.0 .
Descrierea Programului
Programul a fost realizat cu o interfata destul de prietenoasa si usor de utilizat. Cateva elemente grafice animeaza inceputul programului.Acestea sunt create cu ajutorul comenzii "say":
FOR X=1 TO 18
CLEAR
@ X,10 SAY ' ATESTAT LA INFORMATICA' COLOR GR+/N*
@ X+1,10 SAY ' LICEUL TEORETIC ' COLOR GR+/N*
@ X+2,10 SAY ' "GRIGORE MOISIL" ' COLOR GR+/N*
@ X+3,10 SAY ' PROMOTIA 2008 ' COLOR GR+/N*
WAIT ' 'TIMEOUT 0.03
ENDFOR
CLEAR
@ 18,25 SAY ' ELEV: Ciobanu Ana' COLOR GR+/N*
@ 6,5 SAY '' COLOR GR+/N
@ 1,5 SAY ' LICEUL TEORETIC ' COLOR GR+/N*
@ 1,35 SAY ' "GRIGORE MOISIL ' COLOR GR+/N*
@ 20,25 SAY ' PROF. INDRUMATOR ' COLOR GR+/N*
@ 20,49 SAY ' SAVELIEV IULIAN ' COLOR GR+/N*
@ 23,25 SAY ' PROMOTIA ' COLOR GR+/N*
@ 23,40 SAY ' 2008 ' COLOR GR+/N*
WAIT WINDOW 'APASATI O TASTA '
CLEAR
Datele programului au fost protejate cu parola:
**PAROLARE PROGRAM**
@ 3,3 SAY 'ACEST PROGRAM ESTE PAROLAT ' COLOR GR+/N*
@ 4,5 SAY 'AVETI NEVOIE DE CHEIA DE ACCES ' COLOR GR+/N*
PAROLA=' ' P='VENUS'
@ 5,7 SAY 'INTRODUCETI PAROLA ' GET PAROLA
READ
PAROLA=ALLTRIM(PROPER(PAROLA))
P=ALLTRIM(PROPER(P))
IF PAROLA=P
CLEAR
DEACTIVATE WINDOW DFD
for x=1 to 15
clear
@ X,10 SAY ' Parola este corecta!' COLOR GR+/N*
@ X+1,10 SAY ' Please Wait ' COLOR GR+/N*
WAIT ''TIMEOUT 0.01
endfor
CLEAR
ELSE
@ 7,10 SAY 'PAROLA INCORECTA--ACCESUL NU ESTE PERMIS ' COLOR GR+/N*
WAIT ''TIMEOUT(2)
CLOSE ALL
DEACTIVATE WINDOW ALL
CLEAR
DO LOCATARI
ENDIF
DEFINE WINDOW F1 FROM 0,0 TO 24,79 DOUBLE COLOR GR+/N
ACTIVATE WINDOW F1
CLEAR
Meniul programului contine 5 rubrici structurate dupa cum urmeaza:
Despre:
Prezentare-informatii personale;
* Penalizari-informatii despre calculul penalizarilor; Penalizarile se aplica numai in cazul in care un anumit locatar intarzie cu plata intretinerii. Se fixeaza o data scadenta. Persoanele care intarzie cu plata datoriilor vor fi penalizate cu 0.2% pe zi. Suma obtinuta in urma penalizarii va fi adaugata la totalul de plata.
Prg-informatii despre program;
Dbf-informatii despre baza de date folosita.
Afisari:
Locatari-afiseaza numele,prenumele si adresa locatarilor;
Plata_lun--afiseaza suma lunara ce trebuie platita de fiecare proprietar de apartament;
Restante-afiseaza locatarii care au restante, suma restanta si penalizarile pentru fiecare locatar;
Total-afiseaza numele locatarilor, suma totala de plata si restantele.
Utilitare:
Cautare-cautare locatari dupa nume si prenume;
Adaugare-adauga locatari la baza de date;
Stergere-sterge locatari din baza de date;
Modificare-modifica datele locatarilor din baza de date;
Plati-Introduce suma platita de un anumit locatar.
Calcule:
Tot_restante-calculeaza valoarea totala a restantelor;
Tot_penalizari-calculeaza valoarea totala a penalizarilor;
Total_plata-afiseaza suma totala de plata;
Listare totala-listeaza informatiile din baza de date.
Iesire:
Iesire -> FOX-inchide programul si revine la FoxPro;
Iesire ->Windows-inchide atat programul cat si FoxPro.
Pentru fiecare functie a meniului programul foloseste cate o procedura prin care este accesata baza de date unica:ASOCIATIE.DBF.
Sursa programului
SET TALK OFF
SET SAFETY OFF
SET HOUR TO 24
SET ESCAPE ON
SET ECHO OFF
DEACTIVATE WINDOW ALL
CLOSE ALL
CLEAR
SET COLOR TO BG/R+
FOR X=1 TO 18
CLEAR
@ X,10 SAY ' ATESTAT LA INFORMATICA' COLOR GR+/N*
@ X+1,10 SAY ' LICEUL TEORETIC ' COLOR GR+/N*
@ X+2,10 SAY ' "GRIGORE MOISIL" ' COLOR GR+/N*
@ X+3,10 SAY ' PROMOTIA 2008 ' COLOR GR+/N*
WAIT ' 'TIMEOUT 0.02
ENDFOR
CLEAR
@ 18,25 SAY ' ELEVA: Ciobanu Ana' COLOR GR+/N*
@ 6,5 SAY '' COLOR GR+/N
@ 1,5 SAY ' LICEUL TEORETIC ' COLOR GR+/N*
@ 1,35 SAY ' "GRIGORE MOISIL" ' COLOR GR+/N*
@ 20,25 SAY ' PROF. INDRUMATOR ' COLOR GR+/N*
@ 20,49 SAY ' SAVELIEV IULIAN ' COLOR GR+/N*
@ 23,25 SAY ' PROMOTIA ' COLOR GR+/N*
@ 23,40 SAY ' 2008 ' COLOR GR+/N*
WAIT WINDOW 'APASATI O TASTA '
CLEAR
**PAROLARE PROGRAM**
@ 3,3 SAY 'ACEST PROGRAM ESTE PAROLAT ' COLOR GR+/N*
@ 4,5 SAY 'AVETI NEVOIE DE CHEIA DE ACCES ' COLOR GR+/N*
PAROLA=' ' P='VENUS'
@ 5,7 SAY 'INTRODUCETI PAROLA ' GET PAROLA
READ
PAROLA=ALLTRIM(PROPER(PAROLA))
P=ALLTRIM(PROPER(P))
IF PAROLA=P
CLEAR
DEACTIVATE WINDOW DFD
for x=1 to 15
clear
@ X,10 SAY ' Parola este corecta!' COLOR GR+/N*
@ X+1,10 SAY ' Please Wait ' COLOR GR+/N*
WAIT ''TIMEOUT 0.01
endfor
CLEAR
ELSE
@ 7,10 SAY 'PAROLA INCORECTA--ACCESUL NU ESTE PERMIS ' COLOR GR+/N*
WAIT ''TIMEOUT(2)
CLOSE ALL
DEACTIVATE WINDOW ALL
CLEAR
DO LOCATARI
ENDIF
DEFINE WINDOW F1 FROM 0,0 TO 24,79 DOUBLE COLOR GR+/N
ACTIVATE WINDOW F1
CLEAR
DEFINE WINDOW TEXT FROM 1,1 TO 3,63 DOUBLE TITLE 'Asociatia de Locatari VENUS' COLOR GR+/N*
ACTIVATE WINDOW TEXT
DEFINE MENU UP
DEFINE PAD OPT1 OF UP PROMPT ' <DESPRE '
DEFINE PAD OPT2 OF UP PROMPT ' <AFISARI '
DEFINE PAD OPT3 OF UP PROMPT ' <UTILITARE '
DEFINE PAD OPT4 OF UP PROMPT ' <CALCULE '
DEFINE PAD OPT5 OF UP PROMPT ' <IESIRE '
DEFINE POPUP A FROM 1,0
DEFINE BAR 1 OF A PROMPT '<PREZENTARE '
DEFINE BAR 2 OF A PROMPT 'P<ENALIZARI '
DEFINE BAR 3 OF A PROMPT '<PRG '
DEFINE BAR 4 OF A PROMPT '<DBF '
ON SELE BAR 1 OF A DO PREZ
ON SELE BAR 2 OF A DO PENAL
ON SELE BAR 3 OF A DO PRG
ON SELE BAR 4 OF A DO DBF
DEFINE POPUP B FROM 1,13
DEFINE BAR 1 OF B PROMPT ' <LOCATARI '
DEFINE BAR 2 OF B PROMPT ' <PLATA_LUN '
DEFINE BAR 3 OF B PROMPT ' <RESTANTE '
DEFINE BAR 4 OF B PROMPT ' <TOTAL '
ON SELE BAR 1 OF B DO LOCA
ON SELE BAR 2 OF B DO PLATA
ON SELE BAR 3 OF B DO REST
ON SELE BAR 4 OF B DO TOTAL
DEFINE POPUP C FROM 1,25.
DEFINE BAR 1 OF C PROMPT ' <CAUTARE '
DEFINE BAR 2 OF C PROMPT ' <ADAUGARE '
DEFINE BAR 3 OF C PROMPT ' <STERGERE '
DEFINE BAR 4 OF C PROMPT ' <MODIFICARE '
DEFINE BAR 5 OF C PROMPT ' <PLATI '
ON SELE BAR 1 OF C DO CAUT
ON SELE BAR 2 OF C DO ADAUG
ON SELE BAR 3 OF C DO STERG
ON SELE BAR 4 OF C DO MODIFIC
ON SELE BAR 5 OF C DO PLATI
DEFINE POPUP D FROM 1,36
DEFINE BAR 1 OF D PROMPT '<TOT_RESTANTE '
DEFINE BAR 2 OF D PROMPT '<TOT_PENALIZARI'
DEFINE BAR 3 OF D PROMPT '<TOTAL PLATA '
DEFINE BAR 4 OF D PROMPT '<LISTARE TOTALA'
ON SELE BAR 1 OF D DO RES
ON SELE BAR 2 OF D DO PEN
ON SELE BAR 3 OF D DO TOT
ON SELE BAR 4 OF D DO LIS
DEFINE POPUP E FRom 1,45
DEFINE BAR 1 OF E PROMPT '<Iesire -> FOX '
DEFINE BAR 2 OF E PROMPT '<Iesire -> WINDOWS '
ON SELE BAR 1 OF E DO FOX
ON SELE BAR 2 OF E DO WIN
ON SELE PAD OPT1 OF UP ACTIVATE POPUP A
ON SELE PAD OPT2 OF UP ACTIVATE POPUP B
ON SELE PAD OPT3 OF UP ACTIVATE POPUP C
ON SELE PAD OPT4 OF UP ACTIVATE POPUP D
ON SELE PAD OPT5 OF UP ACTIVATE POPUP E
ACTIVATE MENU UP
USE ASOCIATIE
REPLACE ALL PLATA_LUN WITH (S*NR_PERS)
REPLACE ALL PENALIZARI WITH (S*NR_PERS*NR_ZILE*2)/1000
REPLACE ALL TOTAL WITH (PLATA_LUN+PENALIZARI+RESTANTE)
DEACTIVATE WINDOW ALL
CLOSE ALL
PROCEDURE PLATI
DEFINE WINDOW RBW FROM 5,10 TO 8,65 DOUBLE TITLE ' PLATI ' COLOR RB+/N
ACTIVATE WINDOW RBW
HIDE POPUP C
NUM=' '
ACCEPT 'DATI NUMELE PERSOANEI: ' TO NUM
NUM = ALLTRIM(PROPER(NUM))
USE ASOCIATIE
LOCATE FOR ALLTRIM(PROPER(NUME))=ALLTRIM(PROPER(NUM))
IF FOUND()
STORE RECNO() TO N
INPUT 'INTRODUCETI VALOAREA: ' TO SUMA
IF (SUMA<TOTAL)
REPLACE REST_PLATA WITH TOTAL-SUMA
BROWSE FIELDS NUME,TOTAL,REST_PLATA FOR RECNO()=N
WAIT ''TIMEOUT(3)
? 'S-A INREGISTRAT PLATA '
ELSE
? 'SUMA INTRODUSA GRESIT '
DEACTIVATE WINDOW QW
ELSE
WAIT WINDOW 'PERSOANA INEXISTENTA!!!'
ENDIF
DEACTIVATE WINDOW RBW
SHOW POPUP C
CLEAR
USE
RETURN
PROCEDURE FOX
CLOSE ALL
DEACTIVATE WINDOW ALL
CLEAR
CANCEL
RETURN
PROCEDURE WIN
CLOSE ALL
DEACTIVATE WINDOW ALL
CLEAR
QUIT
RETURN
PROCEDURE PREZ
DEFINE WINDOW FER FROM 5,10 TO 17,60 DOUBLE TITLE 'PREZENTARE' COLOR G+/N
ACTIVATE WINDOW FER
HIDE POPUP A
TEXT
Acest program este realizat de Ciobanu Ana, eleva in clasa a XII-a A a Liceului Teoretic "Grigore Moisil" din Tulcea si tine evidenta unei asociatii de locatari.
ENDTEXT
@ 10,21 GET OKBTN DEFA 0 FUNC '* OK '
READ
CLEAR
DEACTIVATE WINDOW FER
SHOW POPUP A
RETURN
PROCEDURE PENAL
DEFINE WINDOW FER1 FROM 5,10 TO 18,60 DOUBLE TITLE 'PENALIZARI' COLOR G+/N
ACTIVATE WINDOW FER1
HIDE POPUP A
TEXT
Penalizarile se aplica numai in cazul in care un anumit locatar intarzie cu plata intretinerii. Se fixeaza o data scadenta.Persoanele care intarzie cu plata datoriilor vor fi penalizate cu 0.2% pe zi. Suma obtinuta in urma penalizarii va fi adaugata la totalul de plata.
ENDTEXT
@ 10,21 GET OKBTN DEFAULT 0 FUNCTION '* OK '
READ
CLEAR
DEACTIVATE WINDOW FER1
SHOW POPUP A
RETURN
PROCEDURE PRG
DEFINE WINDOW FER2 FROM 5,10 TO 13,60 DOUBLE TITLE 'DESPRE PROGRAM' COLOR G+/N
ACTIVATE WINDOW FER2
HIDE POPUP A
TEXT
Acest program contine campurile NR_CRT,NUME, ADRESA,NR_PERS,PLATA_LUN,RESTANTE,PENALIZARI, NR_ZILE si TOTAL. Campurile PLATA_LUN,TOTAL si PENALIZARI vor fi calculate pe parcursul programului cu ajutorul bazei de date INFO
ENDTEXT
WAIT WINDOW 'PRESS ANY KEY '
DEACTIVATE WINDOW FER2
CLEAR
MODI COMM LOCATARI NOEDIT
WAIT WINDOW 'APASATI O TASTA '
CLEAR
SHOW POPUP A
RETURN
PROCEDURE DBF
DEFINE WINDOW FER3 FROM 5,10 TO 15,60 DOUBLE TITLE 'DATA BASE FILE' COLOR G+/N
ACTIVATE WINDOW FER3
HIDE POPUP A
TEXT
Programul va folosi o singura baza de date intitulata ASOCIATI.DBF. Totalul a fost retinut intr-o variabila 'S'.
ENDTEXT
WAIT WINDOW 'PREZENTARE BAZA DE DATE'
DEACTIVATE WINDOW FER3
CLEAR
DEFINE WINDOW X FROM 4,1 TO 15,75 PANEL TITLE 'INFO.TXT'
ACTIVATE WINDOW X
TEXT
Serviciu Tarif_pers
**********
Apa calda - 44500
Apa rece - 25500
Canal - 9000
Gaze - 16000
Gunoi - 11500
En.Electrica- 3000
Cheltuieli - 7500
Totalul de plata a unei persoane este de 117000 lei/luna
ENDTEXT
WAIT ''TIMEOUT(4)
DEFINE WINDOW Y FROM 13,1 TO 23,75 PANEL TITLE 'ASOCIATIE'
ACTIVATE WINDOW Y
USE ASOCIATI
DISP ALL
WAIT '' TIMEOUT(5)
CLOSE ALL
DEACTIVATE WINDOW X
DEACTIVATE WINDOW Y
CLEAR
SHOW POPUP A
RETURN
PROCEDURE LOCA
USE ASOCIATIE
DEFINE WINDOW SX FROM 5,5 TO 23,75 TITLE 'AFISARI' COLOR G+/N
ACTIVATE WINDOW SX
HIDE POPUP B
BROWSE FIELDS NR_CRT,NUME,ADRESA IN WINDOW SX
WAIT ''TIMEOUT(2)
CLOSE ALL
DEACTIVATE WINDOW SX
SHOW POPUP B
RETURN
PROCEDURE PLATA
S=117000
USE ASOCIATI
DEFINE WINDOW SX FROM 5,5 TO 23,75 TITLE 'AFISARI' COLOR G+/N
ACTIVATE WINDOW SX
HIDE POPUP B
REPLACE ALL PLATA_LUN WITH (S*NR_PERS)
SORT TO ASOC1 ON PLATA_LUN/D
USE ASOC1
BROWSE FIELDS NUME,NR_PERS,PLATA_LUN
CLOSE ALL
CLEAR
DEACTIVATE WINDOW SX
SHOW POPUP B
RETURN
PROCEDURE REST
S=117000
USE ASOCIATI
DEFINE WINDOW SX FROM 5,5 TO 23,75 TITLE 'AFISARI' COLOR G+/N
ACTIVATE WINDOW SX
HIDE POPUP B
REPLACE ALL PENALIZARI WITH (S*NR_PERS*NR_ZILE*2)/1000
SORT TO ASOC2 ON RESTANTE/D
USE ASOC2
BROWSE FIELDS NUME,RESTANTE,PENALIZARI
CLOSE ALL
CLEAR
DEACTIVATE WINDOW SX
SHOW POPUP B
RETURN
PROCEDURE TOTAL
USE ASOCIATI
DEFINE WINDOW SX FROM 5,5 TO 23,75 TITLE 'AFISARI' COLOR G+/N
ACTIVATE WINDOW SX
HIDE POPUP B
REPLACE ALL TOTAL WITH (PLATA_LUN+RESTANTE+PENALIZARI)
INDEX ON TOTAL TO TOTAL
BROWSE FIELDS NUME,TOTAL,REST_PLATA
CLOSE ALL
CLEAR
DEACTIVATE WINDOW SX
SHOW POPUP B
RETURN
PROCEDURE CAUT
USE ASOCIATI
DEFINE WINDOW SEA FROM 5,10 TO 12,60 PANEL TITLE 'SEARCHING' COLOR GR+/N
ACTIVATE WINDOW SEA
HIDE POPUP C
NUM=' '
@ 3,3 SAY 'NUME SI PRENUME: ' GET NUM
READ
LOCATE FOR ALLTRIM(PROPER(NUME))=ALLTRIM(PROPER(NUM))
IF FOUND()
STORE RECNO() TO NRC
BROWSE FOR RECNO()=NRC
ELSE
@ 4,10 SAY 'PERSOANA CAUTATA NU EXISTA!'
WAIT ''TIMEOUT(2)
ENDIF
CLEAR
CLOSE ALL
DEACTIVATE WINDOW SEA
SHOW POPUP C
RETURN
PROCEDURE ADAUG
S=117000
USE ASOCIATI
DEFINE WINDOW APP FROM 5,10 TO 22,75 PANEL TITLE'ADAUGARE DATE'COLOR GR+/RB
ACTIVATE WINDOW APP
HIDE POPUP C
APPEND BLANK
GO BOTTOM
STORE RECNO() TO NRC
NUM=' '
@ 3,3 SAY 'NUME SI PRENUME: ' GET NUM
READ
LOCATE FOR TRIM(PROPER(NUME))=TRIM(PROPER(NUM))
IF FOUND()
CLEAR
@ 3,3 SAY 'PERSOANA CAUTATA EXISTA!'
WAIT ''TIMEOUT(2)
DELETE FOR RECNO()=NRC
PACK
ELSE
CLEAR
INDEX ON NUME TO NUME
CHANGE FIELDS NUME,ADRESA,NR_PERS,RESTANTE,NR_ZILE FOR RECNO()=NRC
INDEX ON NUME TO NUME
GO NRC-1
NRC=NR_CRT
GO NRC
REPLACE ALL NR_CRT WITH RECNO()
REPLACE ALL PLATA_LUN WITH (S*NR_PERS)
REPLACE ALL PENALIZARI WITH (S*NR_PERS*NR_ZILE*2)/1000
REPLACE ALL TOTAL WITH (PLATA_LUN+PENALIZARI+RESTANTE)
CLOSE ALL
DEACTIVATE WINDOW APP
ENDIF
CLOSE ALL
DEACTIVATE WINDOW APP
SHOW POPUP C
RETURN
PROCEDURE STERG
USE ASOCIATI
DEFINE WINDOW DEL FROM 5,10 TO 12,60 PANEL TITLE 'STERGERE DATE' COLOR G+/N
ACTIVATE WINDOW DEL
HIDE POPUP C
NUM=' '
@ 3,3 SAY 'NUME SI PRENUME: ' GET NUM
READ
LOCATE FOR ALLTRIM(PROPER(NUME))=ALLTRIM(PROPER(NUM))
IF FOUND()
STORE RECNO() TO NRC
DELETE FOR RECNO()=NRC
ST=' '
CLEAR
BROWSE FIELDS NUME,ADRESA,TOTAL FOR RECNO()=NRC
WAIT ''TIMEOUT(1)
CLEAR
@ 3,3 SAY 'DORITI STERGEREA? (Yes/No)' GET ST
READ
IF LASTKEY()=89 OR LASTKEY()=121
PACK
? 'PERSOANA A FOST STEARSA DIN BAZA DE DATE!'
WAIT ''TIMEOUT(2)
DEACTIVATE WINDOW DEL
ENDIF
ELSE
CLEAR
@ 3,3 SAY 'PERSOANA NU EXISTA!'
WAIT ''TIMEOUT(2)
ENDIF
CLOSE ALL
DEACTIVATE WINDOW DEL
SHOW POPUP C
RETURN
PROCEDURE MODIFIC
USE ASOCIATIE
DEFINE WINDOW MOD FROM 5,10 TO 22,60 PANEL TITLE 'MODIFICARE DATE' COLOR GR+/N
ACTIVATE WINDOW MOD
HIDE POPUP C
NUM=' '
@ 3,3 SAY 'NUME SI PRENUME: ' GET NUM
READ
LOCATE FOR TRIM(PROPER(NUME))=TRIM(PROPER(NUM))
IF FOUND()
STORE RECNO() TO NRC
CHANGE FIELDS NUME,ADRESA,NR_PERS,RESTANTE,NR_ZILE FOR RECNO()=NRC
REPLACE ALL PLATA_LUN WITH (S*NR_PERS)
REPLACE ALL PENALIZARI WITH (S*NR_PERS*NR_ZILE*2)/1000
REPLACE ALL TOTAL WITH (PLATA_LUN+PENALIZARI+RESTANTE)
INDEX ON NUME TO NUME
BROWSE
ELSE CLEAR
@ 3,3 SAY 'PERSOANA INEXISTENTA!'
WAIT TIMEOUT(2)
DEACTIVATE WINDOW MOD
ENDIF
CLOSE ALL
DEACTIVATE WINDOW MOD
SHOW POPUP C
RETURN
USE ASOCIATIE
DELETE FOR (RECNO()=0) OR (NUME=' ')
PACK
CLOSE DATABASE ASOCIATIE
PROCEDURE RES
CLEAR
USE ASOCIATIE
DEFINE WINDOW R FROM 6,5 TO 10,55 PANEL
ACTIVATE WINDOW R
HIDE POPUP D
CALCULATE SUM(RESTANTE) TO W
TOTALUL RESTANTELOR ESTE DE ',W,'LEI'
WAIT ''TIMEOUT(2)
DEACTIVATE WINDOW R
CLEAR
SHOW POPUP D
RETURN
PROCEDURE PEN
USE ASOCIATIE
CLEAR
DEFINE WINDOW R FROM 8,8 TO 12,55 PANEL
ACTIVATE WINDOW R
HIDE POPUP D
CALCULATE SUM(PENALIZARI) TO E
?' TOTALUL PENALIZARILOR ESTE DE ',E,'LEI'
WAIT ''TIMEOUT(2)
DEACTIVATE WINDOW R
CLEAR
SHOW POPUP D
RETURN
PROCEDURE TOT
USE ASOCIATIE
DEFINE WINDOW R FROM 8,8 TO 12,55 PANEL
ACTIVATE WINDOW R
HIDE POPUP D
CLEAR
CALCULATE SUM(TOTAL) TO T
? ' TOTALUL RESTANTELOR ESTE DE ',T,'LEI'
WAIT ''TIMEOUT(2)
CLEAR
DEACTIVATE WINDOW R
SHOW POPUP D
RETURN
PROCEDURE LIS
USE ASOCIATIE
DEFINE WINDOW L FROM 7,5 TO 11,40 PANEL TITLE 'LISTARE LA IMPRIMANTA'
ACTIVATE WINDOW L
? 'INCEPE LISTAREA LA IMPRIMANTA! '
LIST ALL TO PRINT
WAIT ''TIMEOUT(5)
DEACTIVATE WINDOW L
CLOSE ALL
CLEAR
RETURN
USE ASOCIATIE
REPLACE ALL PLATA_LUN WITH (S*NR_PERS)
REPLACE ALL PENALIZARI WITH (S*NR_PERS*NR_ZILE*2)/1000
REPLACE ALL TOTAL WITH (PLATA_LUN+PENALIZARI+RESTANTE)
DEACTIVATE WINDOW ALL
CLOSE ALL
ELSE
@ 7,10 SAY 'PAROLA INCORECTA--ACCESUL NU ESTE PERMIS ' COLOR G+/N*
WAIT ''TIMEOUT(2)
CLOSE ALL
DEACTIVATE WINDOW ALL
CLEAR
DO LOCATARI
ENDIF
Bibliografie:
FoxPro 2.6 sub Windows Dima Gabriel, Dima Mihai Editura TEORA,1996
Initiere in FoxPro, colectia "Initiere in calculatoare" ed. Arves
Informatica varianta Visual FoxPro Mariana Pantiru, Ionut Pantiru
FoxPro 2.5 si 2.6 pentru DOS Gabriel Dima
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1506
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved