Padajuće liste u Calculus-u 12

Padajuće liste izuzetno olakšavaju rad u Calculus-u 12 i značajno smanjuju greške pri unosu podataka. Padajuće liste u Calculus-u 12 omogućuju prirodan način unosa matičnih podataka preko naziva podatka umesto njegove šifre. Osim toga, padajuće liste kontrolišu ispravnost unetih podataka i obezbeđuju ispravnost veza među podacima. Međutim, njihovo funkcionisanje može stvoriti zabunu u izvesnim slučajevima, pa ćemo ovde izneti kako se one ponašaju u različitim situacijama (vidi sliku) (vidi sliku)Podešavanje padajućih lista.

Učitavam sliku
"Podešavanje padajućih lista".

Otvaranje i zatvaranje prozora sa padajućim listama Vrh

Uzmimo na primer padajuću listu koja sadrži nazive područja (mesta). Područja će Vam neizostavno biti potrebna prilikom unosa podataka u prozor za unos komitenata kada u podatke o komitentu obavezno navodite sedište komitenta. Padajuća lista učitava podatke iz Calculus 12 baze podataka prilikom otvaranja prozora i za izvršenje te operacije potrebno je izvesno vreme. Čim zatvorite prozor za unos komitenata "dovučeni" podaci iz baze se brišu iz brze memorije računara pa tako ukoliko ga ponovo otvorite, isti podaci će se ponovo učitavati i opet trošiti neko vreme. Kada se unutar nekog prozora Calculus-a 12 nalazi veći broj padajućih lista, vreme učitavanja može biti značajno. Zbog toga je uvedeno tzv. "keširanje" padajućih lista.

Izraz "keširanje" koristi se u mnogim slučajevima u računarskoj tehnici i podrazumeva čuvanje određenih podataka, koji su jednom učitani sa tvrdog diska (spora memorija), smeštaju u privremenu brzu memoriju računara koja keširane podatke isporučuje mnogo brže. Procedura se koristi onda kada postoji velika verovatnoća da će ti podaci biti ponovo korišćeni u neizmenjenom obliku (vidi sliku) (vidi sliku)Izbor za "keširanje" padajućih lista.

Učitavam sliku
"Izbor za "keširanje" padajućih lista".

Kada prozor za komitente prvi put zatraži padajuću listu sa područjima, ona će biti učitana iz baze u privremenu memoriju, a onda iz privremene memorije iskopirana u prozor za komitente. Svako ponovljeno otvaranje prozora neće ponovo uzimati podatke za padajuću listu iz baze nego iz privremene memorije i biće mnogo brže dostavljeni nego prilikom prvog otvaranja (vidi sliku) (vidi sliku)Primer izbora podatka iz padajuće liste.

Učitavam sliku
"Primer izbora podatka iz padajuće liste".
Napomena

Po izlasku iz određenog programa Calculus-a 12 i keširani sadržaj privremene memorija se briše, tako da ponovno startovanje programa nanovo puni "keš memoriju" učitavanjem podataka iz baze.

Istovetne padajuće liste u više prozora Calculus-a 12 Vrh

Uzmimo opet za primer padajuću listu koja sadrži nazive područja. Ova ista padajuća lista može biti korišćena npr. u prozoru za unos komitenata, gde dodeljujete sedište komitentu ili u prozoru za unos podataka o zaposlenima gde zaposlenom radniku dodeljujete mesto stanovanja. Ako otvorite prozor za komitente, padajuća lista će biti učitana u privremenu memoriju. Ako potom otvorite prozor za unos i evidentiranje podataka o radnicima, a on koristi istu padajuću listu sa područjima, ona će biti iskopirana iz privremene memorije prozora za unos podataka o zaposlenima umesto učitana iz baze Calculus-a 12 (vidi sliku) (vidi sliku)Keširanje padajućih lista između prozora Calculus-a 12.

Učitavam sliku
"Keširanje padajućih lista između prozora Calculus-a 12".

Osvežavanje padajućih lista Vrh

Osvežavanje padajućih lista iz baze između više programa i računara

Uzmimo još jednom za primer padajuću listu sa područjima u prozoru za unos komitenata. Kad je otvoren prozor za komitente, padajuća lista je učitala sve gradove koji postoje u bazi podataka i te podatke sada čuva u privremenoj memoriji dodeljenoj otvorenom prozoru za unos komitenata, i ne komunicira više sa bazom. Ako vam zatreba novo mesto, koji ne postoji u listi, morate otvoriti prozor za definisanje područja i uneti novi mesto. Taj podatak snimićete u bazu. Kada se vratite u prozor za komitente, bez obzira da li ste ga pre toga zatvorili, pa ga ponovo otvarate ili ga samo aktivirate, očekujete da se u listi pojavi i novo uneto mesto. U privremenu memoriju za padajuće liste moraju se ponovo učitati podaci iz baze i iskopirati u liste već otvorenih prozora. Ova operacija se naziva "Osvežavanje padajućih lista".

Prozori unutar jednog programa šalju jedan drugom signale o izmenama podataka i padajućim listama koje treba osvežiti. Ovo osvežavanje dešava se u trenutku kada određeni prozor postaje aktivan, a prethodno je u nekom drugom prozoru urađena izmena koja utiče na njegove padajuće liste. Dakle, osvežavanje se postiže gotovo trenutno. Primetićete u statusnoj liniji glavnog prozora programa poruku "Osvežavanje padajućih lista u toku ..." (vidi sliku) (vidi sliku)Osvežavanje padajućih lista u toku ....

Učitavam sliku
"Osvežavanje padajućih lista u toku ...".
Pomoć

U slučajevima kada niste sigurni da li su padajuće liste automatski osvežene, desnim klikom pozovite konteksni meni prozora i ručno pokrenite osvežavanje padajućih lista. Osvežavanje padajuće liste u kojoj niste pronašli novo uneti podatak osvežite pritiskom na funkcijski taster F5. Ručno osvežavanje svih padajućih lista u otvorenom prozoru postižete funkcijskim tasterom F6.

Dinamička razmena podataka (Dynamic Data Exchange, DDE)

Na istom računaru može biti istovremeno startovano više programa Calculus-a 12. Pretpostavimo prethodni slučaj sa područjima i komitentima, ali tako što je prozor za komitente otvoren u jednom programu, a prozor za definisanje područja u drugom programu. Slično kao što različiti prozori unutar jednog programa šalju jedan drugom signale za osvežavanje, tako i različiti programi šalju iste signale jedan drugom. Osvežavanje je gotovo trenutno (vidi sliku) (vidi sliku)Osvežavanje između različitih programa paketa na jednom računaru.

Učitavam sliku
"Osvežavanje između različitih programa paketa na jednom računaru".

Osvežavanje između različitih računara u mreži

Kada više korisnika sa različitih računara pristupa istoj bazi podataka na serveru, problem osvežavanja padajućih lista postaje komplikovaniji. Posmatrajmo isti primer sa područjima i komitentima, ali tako da je prozor za komitente sad otvoren u nekom programu na jednom računaru, a neki drugi korisnik unosi nove gradove na drugom računaru. Programi ovog paketa ne mogu direktno komunicirati između različitih računara. Potreban im je izvestan posrednik. Tog posrednika ovde predstavlja datoteka za komunikaciju, čija putanja i naziv se određuju u prozoru Opcije programa - listić "Podaci" koji je dostupan iz svih aplikacija ovog paketa (vidi sliku) (vidi sliku)Osvežavanje između različitih računara u mreži.

Učitavam sliku
"Osvežavanje između različitih računara u mreži".
Korisno je znati

Datoteka za komunikaciju je obična tekstualna datoteka na putanji "x:\ProgramData\Calculus\Calculus12\TempDir\OSVDDDW.TXT", kojoj pristupaju svi programi, upisujući u nju potrebne informacije o izmenama podataka koje su izvršene i o vremenu kada su izvršene. Svaki od programa povremeno pristupa toj datoteci i proverava da li je od poslednjeg čitanja došlo do novih izmena.

Čim pronađe izmene koje utiču na otvorene padajuće liste program ih osvežava. Razlika u odnosu na prethodne slučajeve je u tome što osvežavanje nije trenutno. Period u kojem se program povremeno obraća datoteci za komunikaciju ne sme biti prekratak, da ne bi došlo do "zagušenja" mrežnog saobraćaja, a ni predugačak da se ne bi suviše čekalo na osvežavanje. Taj period se podešava u istom prozoru za opcije programa, listić "Podaci" (vidi sliku) (vidi sliku)Vreme osvežavanja padajućih lista u mreži.

Učitavam sliku
"Vreme osvežavanja padajućih lista u mreži".
Korisno je znati


Vreme osvežavanja padajućih lista u mreži treba postaviti na vrednost između 1 i 5 minuta. Ako podesite na 2 minuta i neko drugi unese novi podatak na svom računaru, morate da sačekate 2 minuta da se taj podatak pojavi na vašem računaru. Ovo može delovati dugo, ali u praksi je retkost da vam trenutno trebaju podaci koje je neko drugi uneo na svom računaru. Ako vam je baš neophodno da što pre dobijete taj podatak, možete tasterom F6 ponovo učitati padajuće liste iz baze na serveru.