CATEGORII DOCUMENTE |
Agricultura | Asigurari | Comert | Confectii | Contabilitate | Contracte | Economie |
Transporturi | Turism | Zootehnie |
Definirea problemei
Tema abordata este "DERULAREA CONTRACTELOR DE EXPORT" pe beneficiari interni, externi si produse, la nivelul unei case de comenzi.
Date de iesire
Datele de iesire din cadrul activitatii de export au fost grupate in trei rapoarte, satisfacand cerintele informationale interne.
a) Nomenclatorul produselor este utilizat de magazioneri si comercianti pt evidenta stocurilor de produse. Continutul informational si forma de prezentare sunt:
Nomenclatorul produselor
Cod produs |
Denumire produs |
UM |
Pret unitar catalog |
Stoc |
Valoare |
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
b) Lista beneficiarilor este necesara comerciantilor pentru corespondenta comerciala si financiara. Continutul informational si forma de prezentare sunt:
Lista beneficiarilor
Cod beneficiar |
Denumire beneficiar |
Tara |
Adresa |
Contul bancar |
(1) |
(2) |
(3) |
(4) |
(5) |
c) Situatia contractelor scadente este folosita de comercianti pentru derularea ritmica a obligatiilor contractuale la cantitatile si termenele si termenele prevazute, pentru fiecare produs contractat. Continutul informational si forma de prezentare sunt:
Situatia contractelor de export
Nr. contract |
Data contract |
Cod benef |
Cod produs |
Den produs |
Pu pivrare |
Cant contr. |
Termen livrare |
valoare |
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
(7) |
(8) |
(9) |
Date de intrare
Datele de intrare din cadrul activitatii de export, necesare intocmirii celor trei rapoarte prezentate sunt preluate din documente primare distincte: FISA CONTRACTULUI(anexa 1 si 2) si FISA PRODUSULUI
Continutul informational care va face obiectul prelucrarii pe calculator este prezentat in tabelul urmator:
Document primar |
Denumirea informatiei preluate |
Lista valorilor posibile |
Validari si corelatii |
Rolol in prelucrare |
Fisa contract |
* nr contract |
1 la 500 |
|
Regasire |
(anexa 1) |
* data contract |
1 la 31; 1 al 12 |
Cronologic |
|
* cod beneficiar |
1 la 99999 |
Selectiv |
||
* cod tara importatoare |
Selectiv |
|||
* cod valuta |
Selectiv |
|||
* prex unitar export |
>0 |
Calcule |
||
* curs valutar | ||||
* cod produs |
1 la 99999 |
Selectiv |
||
* cantitate contractata |
>0 |
Calcule |
||
* termen de livrare |
1 la 31; 1 la 12 |
Selectiv |
||
Fisa contract |
* tara de origine |
Selectiv |
||
(anexa 2) |
* denumire beneficiar |
Descriptiv |
||
* adresa |
Descriptiv |
|||
* contul bancar |
Descriptiv |
|||
Fisa produsului |
* cod produs |
1 la 99999 |
Acces |
|
* denumire produs |
Descriptiv |
|||
* pret unitar |
>0 |
Calcule |
||
* unitate de masura |
Descriptiv |
|||
* cantitate contractata |
>0 |
Calcule |
||
* cantitate produsa |
>0 |
Calcule |
||
* cantitate livrata |
>0 |
Calcule |
Actualizarea datelor
Actualizarea datelor din evidentele primare se face selectiv la nivelul pozitiilor din anexa 1 a fiecarui contract si consta din efectuarea urmatoarelor operatii:
Adaugarea noilor contracte sau a noilor pozitii la anumite contracte suplimentare;
Modificarea oricaror informatii din cadrul contractelor existente;
Stergerea anumitor contracte exptrate sau a unor contracte eronate;
Examinarea datelor existente inavidente.
Coduri adoptate
Codurile adoptate in scopul facilitarii operatiilor de regasire si prelucrare sunt:
codul produsului, N, 5 valori 1 la 99999
codul beneficiarului, N, 5 valori 1 la 99999
numar contract, N, 5 valori 1 la 500
cod depozit, N, 2 valori 1 la 3
codul tarii, C, 2 lista cod automobil
contul bancar, C, 10 lista cod ISO
Solutia propusa
Schema generala
Schema generala ofera o imagine de ansamblu asupra configuratiei utilizate asupra componenteloraplicatiei si a tipului de legaturi dintre ele.
Fisiere
Videoformate:
Intrari informationale
Acestea au fost structurate in trei tabele permanente CONTRACTE, PRODUSE, BENEFICIARI, care constituie baza de date (tip DBF).
Tabela CONTRACTE(contr.dbf)
continutul informational este format din date preluate din Fisa Contractului(anexa1)
structura logica a unei inregistrari:
CODB, N, 5 cod beneficiar
CODP, N, 5 cod produs
PLN, N, 5+2 pret livrare
CANTL, N, 7 cantitate livrata
TERMENL, D, 8 termen(data) livrarii
CL, M, 10 conditii de livrare
macheta ecran formatat: nu
cheia primara: CODB
cheia 1 secundara: CODP
cheia 2 secundara: TERMENL
periodicitatea actualizarii: la cerere
operatii de actualizare necesare: adaugare, modificare, stergere, vizualizare, rasfoire
indexari simple dupa: CODB, CODP, TERMENL, compuse dupa: TERMENL+CODP+CODB pentru actualizari si consultari selective
lungime articol: 42 bytes
nr.maxim de articole in fisier: aprox.5000
necesar de memorie: 42x5000 bytes pe HD si FD
salvarea-restaurarea se face periodic pe FD, pastrand numele
legaturi cu alte fisiere: prin CODB cu fisierul Beneficiari si prin CODP prin fisierul Produse.
Tabela PRODUSE(prod.dbf)
continut informational: format din documentul primar Fisa Produsului
structura logica a unei inregistrari:
CODP, N, 5 index, cod produs
DENP, C, 16 index, denumire produs
UMP, C, 3 unitate de masura
macheta ecran formatat: nu
cheia primara: CODP
cheia 1 secundara: DENP
perioada actualizarii: la cerere
operatii de actualizare necesare: adaugare, modificare, stergere, vizualizare, anulare, rasfoire
indexari simple dupa: CODP, DENP pentru consultari selective
lungime articol: 24 bytes
nr.maxim de articole in fisier: aprox.400
necesar de memorie: 24x400 bytes pe HD si FD
salvarea /restaurarea se face periodic pe FD
legaturi cu alte fisiere: nu
Tabela BENEFICIARI(benef.dbf)
continutul informational este format din datele generale si din anexa 2 ale fiecarui contract de livrare sau comanda incheiata
structura logica a unei inregistrari:
CODB, N, 5 index cod beneficiar
DENB, C, 30 denumire beneficiar
STR, C, 20 strada
NR, N, 3 numarul
LOC, C, 20 localitatea
TEL, N, 7 telefon
CTBC, C, 15 cont bancar
macheta ecran formatata: nu
cheia primara: CODB
cheia 1 secundara: DENB
perioada actualizarii: la cerere
operatii de actualizare necesare: adaugare, modificare, stergere, vizualizare, anulare, reactivare
indexari simple dupa: CODB, DENB pentru consultari selective
lungime articol: 100 bytes
nr.maxim de articole in fisier: aprox.1000
necesar de memorie: 100x1000 bytes pe HD si FD
salvarea /restaurarea se face periodic pe FD
legaturi cu alte fisiere: nu
Iesiri informationale
Acestea au fost sistematizate in trei rapoarte prezentand la cerere anumite informatii necesare utilizatorilor, in forma integrala su partiala.
Nomenclatorul produselor
Este afisat pe ecran, in forma tabelara, cu continut informational structurat potrivit urmatoarei machete:
Cod produs |
Denumire produs |
UM |
Pret unitar catalog |
Stoc |
Valoare |
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
N 5 |
C 20 |
C 4 |
N 9,2 |
N 7 |
N 11,2 |
suport informational utilizat: monitor color
selectia datelor de prelucrat: tabela Produse fara conditii de selectie
ordonarea datelor in report prin indexare compusa dupa CODP, DENP si fisierul temporar DENPROD.idx
calcule efectuate: val*stoc*pu
grade de total: nu
indicatorii(informatiile) de totalizat: nu
recapitulatii rezultate: nu
sumar statistic la sfarsitul raportului: nu
periodicitate: la cerere
dimensiune tabel: nr. Linii/pagina, nr caractere/linie, nr.pagini/tabel
Lista beneficiarilor
Lista este afisabila pe ecran, in forma tabelara, cu un continut informational sistematizat, in concordanta cu o macheta.
Cod beneficiar |
Denumire beneficiar |
Tara |
Adresa |
Contul bancar |
(1) |
(2) |
(3) |
(4) |
(5) |
N 5 |
C 12 |
C 7 |
C 35 |
C 10 |
suport informational utilizat: monitor color
selectia datelor de prelucrat: tabela Beneficiari, fara conditii de selectie
ordonarea datelor in report prin indexare compusa dupa CODP, DENP si fisierul temporar TARBEN.idx
calcule efectuate: nu sunt
grade de total: nu
recapitulatii rezultate: nu
sumar statistic la sfarsitul raportului: nu
dimensiune tabel: nr. Linii/pagina, nr caractere/linie, nr.pagini/tabel
Situatia contractelor scadente
Situatia este stocata de HD in fisierul SITCONST.TXT, de unde poate fi listata ulterior pe imprimanta sau afisata pe ecran.
Nr. Contract |
Data contract |
Cod benef |
Cod tara |
Cod produs |
Den produs |
Pu pivrare |
Cant contr. |
Termen livrare |
valoare |
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
(7) |
(8) |
(9) |
(10) |
suport informational utilizat: hartie, FD, HD, monitor color
selectia datelor de prelucrat: tabela CONTRACT si BENEFICIARI.Conditia de selectie este luna din TERMENL>luna curenta si CODB din fisierele CONTRACTE si BENEFICIARI sa fie egale
ordonarea datelor in report prin indexare dupa TERMENL si CODP si DENB si fisierul temporar LNCNT.idx
calcule efectuate: val=cant*pu
nivele de totalizare: luna, produs, beneficiar scadenta si total general
indicatorii(informatiile) de totalizat: val
recapitulatii rezultate: nu
sumar statistic la sfarsitul raportului: reccount(), max(), min()
periodicitate: lunara
dimensiune tabel: nr. Linii/pagina, nr caractere/linie, nr.pagini/tabel
Dialogul utilizatorului
Dialogul a fost concentrat in patru liste de optuini, prima formand meniul principal, celelalte trei constituind submeniuri asociate fiecarui optiuni din meniul principal. Aceste liste au fost ierarhizate pe trei nivele, fiecare dintre ele sintetizand fie componentele bazei de date, fie functiile realizate de diverse proceduri din program. Cele patru liste de optiuni formeaza nivelul aplicatiei mai precis ele definesc cadrul conservational dintre program si utilizator. O imagine a dialogului dintre utilizatori si program este prezentata in continuare:
MENIUL ORINCIPAL:
F-fisiere
R-rapoarte
T-terminare
MENIU FISIERE MENIU RAPOARTE STOP
C-contracte 1-nomenclatorul produselor
P-produse 2-lista beneficiarilor
B-beneficiari 3-situatia contractelor scadente
R-rapoarte 4-retur
C P B R
MENIU OPERATII
A-adaugare
M-modificare
S-stergere
V-vizualizare
R-retur
A M S V R
Programele aplicatiei
Programele au fost elaborate sub forma de proceduri, monitorizate in concordanta cu listele de optiuni din meniu. Modul de abordare modulara a programului permite realizare, testare si implementare progresiva de sus in jos a fiecarei proceduri tinand seama de componentele realizate pana la momentul respectiv.
Schema procedurala
Aceasta avidentiaza, in primul rand, procedurile elaborate si legaturile lor cu monitorul si in al doilea rand, legaturile directe dintre anumite proceduri. Prezenta succinta a acestei scheme este urmatoarea:
Functiunile realizate de fiecare procedura sunt urmatoarele:
monitor - realizeaza legatura intre operatiunile utilizatorului specifice in cadrul unei sesiuni de lucru si executia procedurilor functionale;
contracte - realizeaza operatii de adaugare, modificare, stergere, si vizualizare de date din tabela CONTRACTE;
produse - idem din tabela PRODUSE;
beneficiari - idem din tabela BENEFICIARI;
listprod - realizeaza afisarea pe ecran a nomenclatorului de produse;
list ben - idem lista beneficiarilor.
sitcontr.
Concluzii
Regimul cocurential in care isi desfasoara activitatea de export firma, reclama o cumoastere permanenta si profunda a relatiilor comerciale cu partenerii externi. Obiectivul principar al acestei activitati il constituie amplificarea si stabilirea pe perioade mai mari a relatiilor economice avantajoase cu partenerii externi solvabili si diminuarea relatiilor economice cu acei parteneri externi nesolvabili. Atunci cand volumul relatii este mare, divers si dinamic, conoasterea profunda a aspectelor pozitive si negative se poate realiza operativ cu ajutorul calculatorului. Acesta poate oferi utilizatorului, prin continutul informational al bazei de date, informatii exacte despre derularea contractelor, livrarilor sau scadentelor.
Examinarea atenta a datelor poate dezvalui perturbatiile generate de diverse verigi organizatorice, din interiorul sau exteriorul firmei. Se pot diminua sau chiar preveni o serie de perturbatii negative prin luarea sau corelarea unor decizii reale, oportune si eficiente in derularea contractelor cu parteneri externi, Fondul de date structurat in cele trei fisiere ale bazei de date poate fi imbunatatit in perioadele urmatoare, dacase vor urmarii, in continuare, legaturile acestei aplicatii cu ale altei aplicatii conexe: marketing, conjunctura economica, prospectare piata, import, etc.
Cerintele informationale ale diversilor utilizatori se armonizeaza cu posibilitatile practice de realizare oferite de programele elaborate in sistemul Fox Pro.
PROCEDURE MONITOR
*==================
set talk off
close databases
clear
wm="D"
do while upper(wm)="D"
clear
@5,2 to 9,21
@4,3 say"MONITORUL APLICATIEI"
@6,3 prompt"1-Fisiere"
@7,3 prompt"2-Rapoarte"
@8,3 prompt"3-Iesire"
menu to wm1
case wm1=1
do fis
case wm1=2
do rap
case wm1=3
wm="N"
endcase
enddo
clear
close all
close procedure
set talk on
return
PROCEDURE FIS
*MODUL DIRECTOR - TABELA APLICATIEI
es="D"
do while es="D"
@5,2 to 10,21
@4,3 say"TABELA APLICATIEI"color/*U
set color to
@6,3 prompt"1-Produse"
@7,3 prompt"2-Beneficiari"
@8,3 prompt"3-Contracte"
@9,3 prompt"4-Iesire"
menu to f
docase
case f=1
do operactp
case f=2
do operactb
case f=3
do operacte
case f=4
es="N"
endcase
enddo
clear
return
PROCEDURE OPERACTP
*===================
*MODUL DIRECTOR-OPERATII ACTUALIZARE TABELA PROD.dbf
use prod
x=file("prod.dbf")
t=.f.
select 1
if used(1)
t=.t.
else
@23,1say"tabela prod.dbf lipseste dindirector.dati<enter>"
read
endif
wdp=space(16)
wum=" "
wcp=0
wcn="D"
op=0
do while wcn $"Dd"
clear
@3,20 to 17,72 double
titlu="actualizarea nomenclatorului de produse"
@4,32say titlu color/*i
set color to
@5,32 to 5,57
@6,22 prompt "1-adaugare selectiva cu index dupa cod"
@7,22 prompt"2-modificare selectiva cu index prin cod "
@8,22 prompt"3-stergere fizica selectiva cu index prin cod"
@9,22prompt"4-stergere logica selectiva cu index prin cod"
@10,22prompt"5-reactivare selectiva cu index prin cod"
@11,22prompt"6-vizualizare selectiva dupa index prin cod"
@12.22prompt"7-rasfoire secventiala cu selectie"
@13,22prompt"8-vizualizare selectiva cu index dupa denumire"
@14,22prompt"9-vizualizare selectiva direct din zona fisier"
@15,22prompt"10-vizualizare secventiala prin pointer"+chr(16)
@16,22prompt"11-retur la nivel superior"
menu to op
do case
case op=1
doadaugp
case op=2
do modifp
case op=3
do stergp
case op=4
do stergp
case op=5
do reactivp
case op=6
do vizcp
case op=7
do resfoirp
case op=8
do vizdenp
case op=9
do vizdirp
case op=10
do acsecvp
case op-11
wcn="N"
endcase
enddo
clear
return
PROCEDURE ICSODP
*================
*INDEXEAZA NOMENCLATORUL PROD.dbf DUPA CODP
close index
delete file iscodp.idx
index on codb to iscodp
set index to iscodp
return
PROCEDURE ADAUGP
*=================
*PROCEDURA DE ADAUGARE NOI PRODUSE IN NOMENCLATOR
CLEAR
@7,22 say"adaugare PRODUSE" color/*i
set color to
cn="D"
di iscodp
do while cn="D"
ww=.F.
st=" "
@19,0 clear to 20,79
@8,9 clear to 16,70
do initp
wcp=0
@9,11 say"cod produs..:"get wcodb picture "@99999"
read
do while ww=.F.
seek wcp
if.not.found()
ww=.T.
else
@19,0 say "inregistrare dubla"
do afecranp
@20,0say"aceasta este inreg. De adaugat?(D/N):"get st picture"!"
read
@8,9 clear to 16,70
@19,0 clear to 20,70
if upper(st) ="N"
exit
else
endif
else
endif
do initp
@19,11 say "cod produs...:"get wcp picture"@99999"color/*i
read
endif
enddo
@19,0 clear to 20,75
if cn ="N"
exit
else
endif
do getecrp
append blank
do repben
do initp
@8,9 clear to 16,70
cn=" "
@20,0 say"continuati adaugarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE MODIFP
*=================
*MODIFICARE DATE PRODUS IN PROD.dbf
clear
@7,22say"modificare PRODUSE " color/*i
set color to
cn="D"
do iscodp
di while cn="D"
st=" "
@19,0 clear to 20,78
@8,9 clear to 16,70
di initp
wcp=0
@9,11 say"cod produs...: "get wcodb picture"@99999"
read
seek wcp
if .not.found()
@19,0 say"inregistrare lipsa"
else
do movprod
do getecrp
replace codp with wcp
do reprodus
do initp
endif
cn=" "
@20,0 say"continuati modificarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE STERGP
*================
*STERGERE PRODUSE DIN NOMENCLATORUL PROD.dbf
clear
@7,22 say'stergere produse' color/*i
set color to
cn = 'D'
do iscodp
do while cn = 'd'
st=' '
@19,0 clear to 20,78
@ 8,9 clear to 16,68
wcp=0
@ 9,11 say 'cod produs.:' get wcp picture '@99999'
read
seek wcp
if.not.found()
@19,0 say 'inregistrare lipsa'
else
do afecranp
if delete()
@19,0 say 'produsul era deja marcat pentru stergere.dati<enter>'
read
@19,0 clear to 19,78
else
store' ' to st
@20,0 say'acest produs se va sterge?(D/N):'get st pict '!'
read
@20,0 clear to 20,78
if st='D'
delete
else
endif
endif
endif
cn=' '
@20,0 say'continuati stergerea?(D/N):'get cn picture'@!'
read
enddo
return
PROCEDURE REACTIVP
*==================
*REACTIVAREA PRODUSELOR STERSE LOGIC
clear
@7,22 say'reactivare produse' color/*i
set color to
cn='D'
do iscodp
do while cn='D'
st=' '
@19,0clear to 20,78
@8,9 clear to 16,68
wcp=0
@9,11 say'cod produs:' get wcp picture' @99999'
read
seekwcp
if .not.found()
@19,0say'produsul era deja marcat pentru inregistrare.dati<enter>'
read
store ' ' to st
@20,0 say'acest produs se va reactiva?(D/N):'get pict '!'
read
@19,0clear to 20,78
else
@19,0 say 'produsul nu era marcat pentru stergere.dati<enter>'
read@19,0 clear to 20,78
endif
if st='D'
recall
else
endif
endif
cn=' '
@20,0 say 'continuati reactivarea?(D/N):'get cn picture '@!'
read
enddo
return
PROCEDURE VIZCP
*===============
*VIZUALIZARE PRODUS DUPA COD
clear
@7,22 say'vizualizare produse' color/*i
set color to
cn ='D'
di iscodp
do while cn='D'
st=' '
@20,0 clear to 20,65
@8,9 clear to 16,70
wcp=0
@9,11 say 'cod produs:'get wcp picture'@99999'
read
seek wcp
if.not.found()
@19,0say 'inregistrare lipsa'
else
do afecranp
endif
cn=' '
@20,0say'continuati vizualizarea?(D/N):'get cn picture'@!'
read
enddo
return
PROCEDURE RASFOIRP
*===================
*RASFOIREA PRODUSELOR DIN NOMENCLATORUL PROD.dbf
clear
*scroll 18,11,21,65,4
*@14,2,22,29 box replicate(chr(176).25)
define window windp from 15,4 to 21,28 title 'PRODUSE' double
*activate window windp
@14,4say'dupa pozitionare dati<CTRL END>'
brow window windp normal
do movprod
@14,4 clear to 14,7
do afecranp
@7,23 say'rasfoire secventiala cu selectie'color/*i
set color to
@18,1say' '
wait
*deactivate window windp
return
PROCEDURE MOVPROD
*===================
*MUTA CONTINUTUL VARIABILEI DIN TABELA PROD.dbf
*IN VARIABILE DE MEMORIE
wcp=codp
wcp=denp
wum=ump
PROCEDURE REPRODUS
*===================
*RECTIFICAREA CONTINUTULUI VARIABILELOR DIN TABELA PROD.dbf
* CU CONTINUTUL VARIABILELOR DE MEMORIE
repl codp with wcp
repl denp with wdp
repl ump with wum
return
PROCEDURE AFECRANP
*===================
*AFISEAZA ECRANUL PENTRU VIZUALIZARE DATE PRODUS
@8,9clear to 16,70
@8,9to 12,70
@6,8 to 17,71 double
@7,48 say "poz.crt.in fis"+str(recno(),5)
@9,11 say "cod produs..:"+str(codp,5)
@10,11say"denumire produs..:"+denp
@11,11say"unitate masura...:"+ump
return
PROCEDURE GETECRP
*==================
*AFISAZA ECRANUL PENTRU INCARCARE DATE PRODUS
@8,9 to 12,70
@6,8 to 17,71 double
@7,48 say"poz.crt.in fis."+str(recnu(),5)
@10.11 say "denumire produs..:"get wdp pict"! ! !!"
@11.11 say"unit. de masura..:"get wum pict"!!!"
read
return
PROCEDURE INITP
*==============
*INITIALIZEAZA VARIABILELE DE MEMORIE
wcp=0
wdp=space(16)
wum=" "
return
PROCEDURE VIZDENP
*==================
*VIZUALIZEAZA DUPA PRIMELE 5 CARACTERE DIN
* DENUMIREA PRODUSULUI
clear
close index
delete file isden.idx
x=file("isden.idx")
t=.f.
select 1
if used(1)
t=.t.
else
delete file isden.idx
endif
if t=.t.
index on substr(denp,1,5) to isden
else
index on substr(denp,1,5) to isden
endif
set index ti isden
myn="D"
do while myn$"Dd"
ml=5
k5=" "
go top
@2,2 say "tastati primele 5 litere din denumirea produsului cautat: "get k5 picture"@XXXXX"
read
K5=upper(k5)
@2,2clear to 2,78
seek k5
if.not.found()
myn=" "
@21,2say"produs cu aceasta denumire lipsa!! Dati <enter>"
read
else
ml=5
set color/i
@3,1say"cod denumire produs U.M."
@4,1say"=================="
set color to
do while k5=substr(denp,1,5).and.not.eof()
@ml,1 say str(codp,5)+" "+substr(denp,1,16)+" "+ump
ml=ml+1
skip
if ml>16
ml=5
@20,1say"============================"
wait
@5,0clear to 19.79
else
endif
yn2=" "
enddo
endif
myn=" "
@22,2say"continuati cu alta denumire?(D/N): "get myn
read
@5,1 clear to 19,78
@22,0 clear to 22,78
enddo
K5=" "
Return
PROCEDURE VIZDIRP
*=================
*VIZUALIZARE SELECTIVA DIRECT DIN ZONA TABELEI
clear
@7,22 say "vizualizare din baza" color/*i
set color to
cn="D"
do while upper(cn)="D"
wcp=0
@22,3say"dati codul produsului: "get wcp pict"99999"
read
locate for codp=wcp
do afecranp
continue
@21,3say"continuati?(D/N): "get cn
read
enddo
return
PROCEDURE ACSECVP
*==================
*ACCESE PRIN POINTER(IDENTIFICATOR) IN TABELA PROD.dbf
clear
@7,13 say"acces prin pointer(identificator)"
set color to
do iscodp
yn="D"
do while.not.eof().and.upper(yn)="D"
@1,55 prompt "1-prima inregistrare"
@2,55prompt"2-urmatoarea inregistrare"
@3,55prompt"3-precedenta inregistrare"
@4,55prompt"4-ultima inregistrare"
@5,55prompt"5-a n-a inregistrare"
menu to ii
do case
case ii=1
go top
do afecranp
case ii=2
skip
if eof()
skip-1
else
endif
do afecranp
case ii=3
skip-1
if bof()
skip
else
endif
do afecranp
case ii=4
go bottom
do afecranp
case ii=5
id=1
@22,2say"dati un pointer de inregistrare1-n: "get id picture "@99999"
read
@22,0 clear to 22,78
if id<= reccount()
go id
do afecranp
else
@22,1say"pointer inreg.cautata>pointer ultima inreg: "+str(reccount())
read
@22,0 clear to 22,78
endif
endcase
@22,0 say"continuati?(D/N): "get yn
read
@22,0 clear to 22,,78
enddo
return
PROCEDURE OPERACTB
*===================
*MODUL DIRECTOR-OPERATII ACTUALIZARE TABELA BENEF.dbf
use benef
x=file("benef.dbf")
t=.f.
select 1
if used(1)
t=.t.
else
@23,1say"tabela benef.dbf lipseste dindirector.dati<enter>"
read
endif
wdenb=space(30)
wstr=space(20)
wnr=0
wloc=space(20)
wtel=0
wctbc=space(15)
wcodb=0
wcn="D"
op=0
do while wcn $"Dd"
clear
@3,20 to 17,72 double
titlu="actualizarea nomenclatorului de beneficiari"
@4,32say titlu color/*i
set color to
@5,32 to 5,57
@6,22 prompt "1-adaugare selectiva cu index dupa cod"
@7,22 prompt"2-modificare selectiva cu index prin cod "
@8,22 prompt"3-stergere fizica selectiva cu index prin cod"
@9,22prompt"4-stergere logica selectiva cu index prin cod"
@10,22prompt"5-reactivare selectiva cu index prin cod"
@11,22prompt"6-vizualizare selectiva dupa index prin cod"
@12.22prompt"7-rasfoire secventiala cu selectie"
@13,22prompt"8-vizualizare selectiva cu index dupa denumire"
@14,22prompt"9-vizualizare selectiva direct din zona fisier"
@15,22prompt"10-vizualizare secventiala prin pointer"+chr(16)
@16,22prompt"11-retur la nivel superior"
menu to op
do case
case op=1
doadaugb
case op=2
do modifb
case op=3
do stergb
case op=4
do stergb
case op=5
do reactivb
case op=6
do vizcb
case op=7
do resfoirb
case op=8
do vizdenb
case op=9
do vizdirb
case op=10
do acsecvb
case op-11
wcn="N"
endcase
enddo
clear
return
PROCEDURE ICSODB
*================
*INDEXEAZA NOMENCLATORUL BENEF.dbf DUPA CODB
close index
delete file iscodb.idx
index on codb to iscodb
set index to iscodb
return
PROCEDURE ADAUGB
*=================
*PROCEDURA DE ADAUGARE NOI BENEFICIARI IN NOMENCLATOR
CLEAR
@7,22 say"adaugare beneficiari" color/*i
set color to
cn="D"
di iscodb
do while cn="D"
ww=.F.
st=" "
@19,0 clear to 20,79
@8,9 clear to 16,70
do initb
wcodb=0
@9,11 say"cod beneficiar..:"get wcodb picture "@99999"
read
do while ww=.F.
seek wcodb
if.not.found()
ww=.T.
else
@19,0 say "inregistrare dubla"
do afecranb
@20,0say"aceasta este inreg. De adaugat?(D/N):"get st picture"!"
read
@8,9 clear to 16,70
@19,0 clear to 20,70
if upper(st) ="N"
exit
else
endif
else
endif
enddo
@19,11 say "cod beneficiar...:"get wcodb picture"@99999"
read
endif
enddo
@19,0 clear to 20,75
if cn ="N"
exit
else
endif
do getecrb
append blank
do repben
do initB
@8,9 clear to 16,70
cn=" "
@20,0 say"continuati adaugarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE MODIFB
*=================
*MODIFICARE DATE BENEFICIARI IN BENEF.dbf
clear
@7,22say"modificare beneficiari " color/*i
set color to
cn="D"
do iscodb
di while cn="D"
st=" "
@19,0 clear to 20,78
@8,9 clear to 16,70
di initb
wcodb=0
@9,11 say"cod beneficiar...: "get wcodb picture"@99999"
read
seek wcodb
if .not.found()
@19,0 say"inregistrare lipsa"
else
do movben
do getecrb
replace codb with wcodb
do repben
do initb
endif
cn=" "
@20,0 say"continuati modificarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE STERGB
*================
*STERGERE PRODUSE DIN NOMENCLATORU BENEF.dbf
clear
@7,22 say"stergere beneficiari" color/*i
set color to cn="D"
di iscodb
do while cn="D"
st=" "
@19,0 clear to 20,78
@8,9 clear to 16,68
wcodb=0
@9,11say"cod beneficiar..: "get wcodb picture "@99999"
read
seek wcodb
if .not.found()
@19,0 say"inregistrare lipsa"
else
do afecranb
if delete()
@19,0say"beneficiarul era deja marcat pentru stergere.dati<enter>"
read
@19,0 clear to 19,78
else
store" "to st
@20,0say"acest beneficiar se va sterge?(D/N): "get st pict '!'
read
@20,0 clear to 20,78
if st="D"
delete
else
endif
endif
endif
cn=" "
@20,0 say"continuati stergerea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE REACTIVB
*===================
*REACTIVAREA BENEFICIARILOR STERSE LOGIC
clear
@7,22 say"reactivare beneficiari "color/*i
set color to
cn="D"
do iscodb
do while cn="D"
st=" "
@19,0clear to 20,78
@8,9clear to 16,68
wcodb=0
@9,11say"cod beneficiar..: "get wcod picture"@99999"
read
seek wcodb
if .not.found()
@19,0say"inregistrare lipsa"
else
do afecranb
if delete()
@19,0say "beneficiarul era deja marcat pt.stergere.dati<enter>"
read
store" "to st
@20,0say"acest beneficiar se va reactiva?(D/N): "get st pict'!'
read
@19,0clear to 20,78
else
@19,0say"beneficiarul nu era marcat pentru stergere.dati <enter>"
read
@19,0 clear to 20,78
endif
if st='D'
recall
else
endif
endif
cn=" "
@20,0say "continuati stergerea?(D/N):"get cn picture"@!"
read
enddo
return
PROCEDURE VIZCB
*================
*VIZUALIZARE BENEFICIAR DUPA COD
CLEAR
@7,22say"vizualizare beneficiar"color/*i
set color to
cn="D"
do iscodb
do while cn="D"
st=" "
@20,0clear to 20,65
@8,9 clear to 16,70
wcodb=0
@9,11say"cod beneficiar..:"get wcodb picture"@99999"
read
seek wcodb
if.not.found()
@19,0say"inregistrare lipsa"
else
do afecranb
endif
cn=" "
@20,0say"continuati vizualizarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE RASFOIRB
*===================
*RESFOIREA BENEFICIARILOR DIN NOMENCLATORUL BENEF.dbf
clear
*scroll18,11,21,65,4
*@14,2,22,29 box replicate(chr176),25)
define window windb from 15,4 to 21,37 title 'beneficiar'double
*activate window windb
@7,13 say"rasfoire secventiala cu selectie "
@14,3 clear to 14,7
do movben
do afecranb
@18,1say" "
wait
*deactivate window windb
return
PROCEDURE MOVBEN
*=================
*MUTA CONTINUTUL VARIABILELOR DIN TABELA BENEF.dbf
* IN VARIABILE DE MEMORIE
WCODB=CODB
Wden=denb
Wstr=str
Wnr=nr
Wloc=loc
Wtel=tel
Wctbc=ctbc
Return
PROCEDURE REPBEN
*=================
*RECTIFICA CONTINUTUL VARIABILELOR DIN TABELA BENEF.dbf
* CU CONTINUTUL VARIABILELOR DE MEMORIE
repl codb with wcodb
repl denb with wdenb
repl str with wstr
repl nr with wnr
repl loc with wloc
repl tel with wtel
repl ctbc with wctbc
return
PROCEDURE AFECRANB
*===================
*AFISAZA ECRANUL PT. VIZUALIZARE DATE BENEFICIAR
@8,9clear to 16,70
@8,9to 16,70
@6,8 to 17,71 double
@7,48 say "poz.crt.in fis"+str(recno(),5)
@9,11 say "cod benficiar..:"+str(codp,5)
@10,11say"denumire beneficiar..:"+denb
@11,11say"strada...:"+str
@12,11say"numarul..:"+str(nr,3)
@13,11say"localitatea.."+loc
@14,11say"telefonul...."+str(tel,7)
@15,11say"contul bancar..."+ctbc
return
PROCEDURE GETECRB
*==================
*AFISEAZA ECRANUL PT. INCARCARE DE DATE
@8,9clear to 16,70
@6,8 to 17,71 double
@7,48 say "poz.crt.in fis"+str(recno(),5)
@9,11 say "cod benficiar..:"GET wcodb pict"@99999"
@10,11say"denumire beneficiar..:"get denb
@11,11say"strada...:"get wstr
@12,11say"numarul..:"get wnr
@13,11say"localitatea.."get wloc
@14,11say"telefonul...."get wtel
@15,11say"contul bancar..."get wctbc
read
return
PROCEDURE INITB
*===============
*INITIALIZEAZA VARIABILELE DE MEMORIE
WCODB=0
Wdenb =space(30)
Wstr=space(20)
Wnr=0
Wloc=space(20)
Wtel=0
Wctbc=space(15)
Return
PROCEDURE VIZDENB
*=================
*VIZUALIZEAZA DUPA PRIMELE 5 CARACTERE DIN DENUMIREA
*BENEFICEARI
clear
close index
delete file isdenb.idx
x=file("index.idx")
t=.f.
select
if used (1)
t=.t.
else
delete file isdenb.idx
endif
endif
if t=.t.
index on substr(denb,1,5) to isdenb
*reindex
else
index on substr(denb,1,5) to isdenb
endif
set index to isdenb
myn="D"
do while myn$"Dd"
ml=5
k4=" "
go top
@2,2 say "tastati primele 5 litere din denumirea beneficiarului cautat: " get k5; picture"@XXXXX"
read
K5=upper(k5)
@2,2 clear to 2,78
seek k4
if .not .found()
myn=" "
@21,2 say "beneficiar cu aceasta denumire lipsa!!. Dati<enter>"
read
else
ml=5
set color to /i
@3,1 say"cod denumire beneficear localitate"
@4,1 say"==========================="
set color to
do while k5=substr(den,1,5).and..not.eof()
@ml,1 say str(codb,5)+" "+substr(denb,1,30)+" "+loc
ml=ml+1
skip
if ml>16
ml=5
@20,0 say"================================="wait
@5,0 clearto 19,79
else
endif
yn=" "
enddo
endif
myn=" "
@22,2 say "continuati cu alta denumire?(D/N):"get myn
read
@5,1clear to 19,78
@22,0 clear to 22,78
enddo
k5=" "
return
PROCEDURE VIZDIRB
*=================
*VIZUALIZARE SELECTIVA DIRECT DIN ZONA TABELEI
clear
@7,22 say "vizualizare din baza" color/*i
set color to
cn="D"
do while upper(cn)="D"
wcp=0
@22,3say"dati codul beneficiarului: "get wcp pict"99999"
read
locate for codb=wcodb
do afecranb
continue
@21,3say"continuati?(D/N): "get cn
read
enddo
return
PROCEDURE ACSECVB
*==================
*ACCESE PRIN POINTER(IDENTIFICATOR) IN TABELA BENEF.dbf
clear
@7,13 say"acces prin pointer(identificator)"
set color to
do iscodb
yn="D"
do while.not.eof().and.upper(yn)="D"
@1,55 prompt "1-prima inregistrare"
@2,55prompt"2-urmatoarea inregistrare"
@3,55prompt"3-precedenta inregistrare"
@4,55prompt"4-ultima inregistrare"
@5,55prompt"5-a n-a inregistrare"
menu to ii
do case
case ii=1
go top
do afecranb
case ii=2
skip
if eof()
skip-1
else
endif
do afecranb
case ii=3
skip-1
if bof()
skip
else
endif
do afecranb
case ii=4
go bottom
do afecranb
case ii=5
id=1
@22,2say"dati un pointer de inregistrare1-n: "get id picture "@99999"
read
@22,0 clear to 22,78
if id<= reccount()
go id
do afecranb
else
@22,1say"pointer inreg.cautata.>pointer ultima inreg: "+str(reccount())
read
@22,0 clear to 22,78
endif
endcase
@22,0 say"continuati?(D/N): "get yn
read
@22,0 clear to 22,,78
enddo
return
PROCEDURE OPERACTE
*===================
*MODUL DIRECTOR-OPERATII ACTUALIZARE TABELA CONTR.dbf
use CONTR
x=file("CONTR.dbf")
t=.f.
select 1
if used(1)
t=.t.
else
@23,1say"tabela CONTR.dbf lipseste dindirector.dati<enter>"
read
endif
wdenb=0
wcodp=0
wpln=0.0
wcantl=0
wtlv=ctod('/ /')
wcl=" "
wcn="D"
op=0
do while wcn $"Dd"
clear
@3,20 to 17,72 double
titlu="actualizarea nomenclatorului de beneficiari"
@4,32say titlu color/*i
set color to
@5,32 to 5,57
@6,22 prompt "1-adaugare selectiva cu index dupa cod"
@7,22 prompt"2-modificare selectiva cu index prin cod "
@8,22 prompt"3-stergere fizica selectiva cu index prin cod"
@9,22prompt"4-stergere logica selectiva cu index prin cod"
@10,22prompt"5-reactivare selectiva cu index prin cod"
@11,22prompt"6-vizualizare selectiva dupa index prin cod"
@12.22prompt"7-rasfoire secventiala cu selectie"
@13,22prompt"8-vizualizare selectiva cu index dupa denumire"
@14,22prompt"9-vizualizare selectiva direct din zona fisier"
@15,22prompt"10-vizualizare secventiala prin pointer"+chr(16)
@16,22prompt"11-retur la nivel superior"
menu to op
do case
case op=1
doadauge
case op=2
do modife
case op=3
do sterge
case op=4
do sterge
case op=5
do reactive
case op=6
do vizce
case op=7
do resfoire
case op=8
do vizdire
case op=9
do acsecve
case op=10
wcn="N"
endcase
enddo
clear
return
PROCEDURE ISCODEB
*==================
*INDEXEAZA NOMENCLATORUL CONTR.dbf DUPA CODB
close index
delete file iscode.idx
index on codb to iscodbe
set index to iscodbe
return
PROCEDURE ADAUGE
*=================
*PROCEDURA DE ADAUGARE NOI CONTRACTE IN NOMENCLATOR
CLEAR
@7,22 say"adaugare contracte" color/*i
cn="D"
di iscodeb
do while cn="D"
ww=.F.
st=" "
@19,0 clear to 20,79
@8,9 clear to 16,70
do inite
wcodb=0
@9,11 say"cod beneficiar..:"get wcodb picture "@99999"
read
do while ww=.F.
seek wcodb
if.not.found()
ww=.T.
else
@19,0 say "inregistrare dubla"
do afecrane
@20,0say"aceasta este inreg. De adaugat?(D/N):"get st picture"!"
read
@8,9 clear to 16,70
@19,0 clear to 20,70
if upper(st) ="D"
@20,0 say "continuati operatia de adaugare?(D/N): "get cn pict"!"
read
if upper(CN)="N"
exit
else
endif
else
endif
do inite
@19,11 say "cod beneficiar...:"get wcodb picture"@99999"
read
endif
enddo
@19,0 clear to 20,75
if cn ="N"
exit
else
endif
do getecre
append blank
do repcont
do inite
@8,9 clear to 16,70
cn=" "
@20,0 say"continuati adaugarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE MODIFE
*=================
*MODIFICARE DATE CONTRACT IN CONTR.dbf
clear
@7,22say"modificare contract " color/*i
set color to
cn="D"
do iscodeb
di while cn="D"
st=" "
@19,0 clear to 20,78
@8,9 clear to 16,70
di inite
wcodb=0
@9,11 say"cod beneficiar...: "get wcodb picture"@99999"
read
seek wcodb
if .not.found()
@19,0 say"inregistrare lipsa"
else
do movcont
do getecre
replace codb with wcodb
do repcont
do inite
endif
cn=" "
@20,0 say"continuati modificarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE STERGE
*================
*STERGERECONTRACTE DIN NOMENCLATORU CONTR.dbf
clear
@7,22 say"stergere beneficiari" color/*i
set color to
cn="D"
di iscodeb
do while cn="D"
st=" "
@19,0 clear to 20,78
@8,9 clear to 16,68
wcodb=0
@9,11say"cod beneficiar..: "get wcodb picture "@99999"
read
seek wcodb
if .not.found()
@19,0 say"inregistrare lipsa"
else
do afecrane
if delete()
@19,0say"beneficiarul era deja marcat pentru stergere.dati<enter>"
read
@19,0 clear to 19,78
else
store" "to st
@20,0say"acest beneficiar se va sterge?(D/N): "get st pict '!'
read
@20,0 clear to 20,78
if st="D"
delete
else
endif
endif
endif
cn=" "
@20,0 say"continuati stergerea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE REACTIVE
*===================
*REACTIVAREA CONTRACTELOR STERSE LOGIC
clear
@7,22 say"reactivare contracte "color/*i
set color to
cn="D"
do iscodeb
do while cn="D"
st=" "
@19,0clear to 20,78
@8,9clear to 16,68
wcodb=0
@9,11say"cod beneficiar..: "get wcod picture"@99999"
read
seek wcodb
if .not.found()
@19,0say"inregistrare lipsa"
else
do afecrane
if delete()
@19,0say "beneficiarul era deja marcat pt.stergere.dati<enter>"
read
store" "to st
@20,0say"acest beneficiar se va reactiva?(D/N): "get st pict'!'
read
@19,0clear to 20,78
else
@19,0say"beneficiarul nu era marcat pentru stergere.dati <enter>"
read
@19,0 clear to 20,78
endif
if st='D'
recall
else
endif
endif
cn=" "
@20,0say "continuati stergerea?(D/N):"get cn picture"@!"
read
enddo
return
PROCEDURE VIZCE
*================
*VIZUALIZARE CONTRACTE DUPA COD
CLEAR
@7,22say"vizualizare beneficiar"color/*i
set color to
cn="D"
do iscodeb
do while cn="D"
st=" "
@20,0clear to 20,65
@8,9 clear to 16,70
wcodb=0
@9,11say"cod beneficiar..:"get wcodb picture"@99999"
read
seek wcodb
if.not.found()
@19,0say"inregistrare lipsa"
else
do afecrane
endif
cn=" "
@20,0say"continuati vizualizarea?(D/N): "get cn picture"@!"
read
enddo
return
PROCEDURE RASFOIRE
*===================
*RESFOIREA CONTRACTOLOR DIN NOMENCLATORUL BENEF.dbf
clear
define window windb from 15,4 to 21,37 title 'beneficiar'double
@7,13 say"rasfoire secventiala cu selectie "COLOR/*I
set color to
@14,4say "dupa pozitionare dati<CTR END>"
brow window winde normal
@14,3 clear to 14,7
do movcont
do afecrane
@18,1say" "
wait
return
PROCEDURE MOVCONT
*===================
*MUTA CONTINUTUL VARIABILELOR DIN TABELA CONTR.dbf
* IN VARIABILE DE MEMORIE
wcodb=codb
wcodp=codp
wpln=pln
wcantl=cantl
wtlv=termenl
wcl=cl
return
PROCEDURE REP CONT
*===================
*RECTIFICA CONTINUTUL VARIABILELOR DIN TABELA CONTR.dbf
*CU CONTINUTUL VARIABILELOR DE MEMORIE
replcodb with wcodb
repl codp with wcodp
repl pln with wpln
repl cantl with wcantl
repl termenl with wtlv
repl el witl wel
return
PROCEDURE AFECRANE
*====================
*AFISAZA ECRANUL PENTRU VIZUALIZARE DATE CONTRACTE
@8,9 clear to 16,70
@8,9to 16,70
@6,8 to 17,71 double
@7,48 say"poz.crt.in fis"+str(recno(),5)
@9,11 say"cod beneficiar..: "+str(codb,5)
@10,11 say"cod produs....: "+str(codp,5)
@11,11say"pretul de livrare..: "+str(0pln,7,2)
@12,11say"cantitatea contractata:"+str(cantl,7)
@13,11say"termenul de livrare.: "+dtoc(termenl)
return
PROCEDURE GETECRE
*===================
*AFISAZA ECRANUL PENTRU INCARCARE DATE CONTRACT
@8,9 TO 16.70
@6,8 to 17.71 double
@7,48 say"poz.crt.in fis."+str(recno(),5)
@9,11 say"cod beneficiar ...: "get wcodb pict"@99999"
@10.11 say"cod produs...: "get wcodp pict"@99999"
@11,11 say"pretul de livrare.: "get wpln pict"@9999999.99"
@12,11 say"cantitatea livrata.: "get wcantl pict"@9999999"
@13,11 say"termen de livrare..: "get wtlv pict" "
@14,11 say"conditia de livrare..: "get wcl pict" "
return
PROCEDURE INITE
*===============
*INITIALIZEAZA VARIABILELE DE MEMOREI
wcodb=0
wcodp=0
wpln=0
wcantl=0
wtlv=ctod('/ /')
wcl=" "
return
* PROCEDURE VIZDIRE
*=================
*VIZUALIZARE SELECTIVA DIRECT DIN ZONA TABELEI
clear
@7,22 say "vizualizare din baza" color/*i
set color to
cn="D"
do while upper(cn)="D"
wcodb=0
@22,3say"dati codul produsului: "get wcodb pict"99999"
read
locate for codp=wcodb
do afecrane
continue
@21,3say"continuati?(D/N): "get cn
read
enddo
return
PROCEDURE ACSECVE
*==================
*ACCESE PRIN POINTER(IDENTIFICATOR) IN TABELA CONTR.dbf
clear
@7,11 say"acces prin pointer(identificator)"
set color to
do iscodeb
yn="D"
do while.not.eof().and.upper(yn)="D"
@1,55 prompt "1-prima inregistrare"
@2,55prompt"2-urmatoarea inregistrare"
@3,55prompt"3-precedenta inregistrare"
@4,55prompt"4-ultima inregistrare"
@5,55prompt"5-a n-a inregistrare"
menu to ii
do case
case ii=1
go top
do afecrane
case ii=2
skip
if eof()
skip-1
else
endif
do afecrane
case ii=3
skip-1
if bof()
skip
else
endif
do afecrane
case ii=4
go bottom
do afecrane
case ii=5
id=1
@22,2say"dati un pointer de inregistrare1-n: "get id picture "@99999"
read
@22,0 clear to 22,78
if id<= reccount()
go id
do afecrane
else
@22,1say"pointer inreg.cautata>pointer ultima inreg: "+str(reccount())
read
@22,0 clear to 22,78
endif
endcase
@22,0 say"continuati?(D/N): "get yn
read
@22,0 clear to 22,,78
enddo
return
PROCEDURE RAP
*=============
CLEAR
me="D"
do while upper(me)="D"
@5,2 to 9,29
@4,3 say "modulul director pentru editere de repoarte"
@5,3say"=============================="
@6,3prompt"1-lista produselor"
@7,3prompt"2-lista beneficiarilor"
@8,3prompt"3-iesire"
menu to wm1
case wm1=1
do listprod
case wm1=2
do listben
case wm1=3
me="N"
endcase
enddo
return
PROCEDURE LISTPROD
*==================
CLEAR
@4,4 SAY"lista produselor"
select 2
use prod
if .not.file("prod.idx")
index on denp to prod.idx
endif
set index to prod
go top
c4="D"
do while upper(c4)="D"
do while.not.eof()
clear
?' lista produselor'
cod denumire um'
?'========================================='
?
disp next 16 fields codp,denp,umpwhile.not.eof() off
wait
enddo
clear
@20.2 say"continuati?(D/N): "get c4
read
enddo
return
PROCEDURE LISTBEN
*=================
clear
select 3
use benef
if.not.file('benef.idx')
index on denb to benef.idx
endif
set index to benef
go top
c4="D"
do while upper(c4)="D"
while.not.eof()
clear
?' lista beneficiarilor'
?' ----- ----- -------'
?
?'==================================================='
?' cod denumire localitate telefon'
?'==================================================='
?
disp next 15 fields codb,denb,loc,tel while.not.eof() off
wait
enddo
clear
@20,2 say"continuati?(D/N): "get c4
read
enddo
return
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1793
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved