Škola Accessa
predavač: Branislav Mihaljev

 Škola Praktikuma | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Škola Praktikuma

Škola Accessa
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Čas 9 - Funkcije komandne table

Razvoj jednostavne aplikacije namenjene poslovanju biblioteke ulazi u završnu fazu. Paralelno sa "šminkom" razvićemo odgovarajuće upite (za izdvajanje podataka po nekom kriterijumu) i izveštaje bazirane na upitima.

Tasterima na komandnoj tabli dodelićemo odgovajuće nazive, tasterske prečice i programske akcije.

Komanda tabla, kao centralni deo aplikacije, povezuje ostale elemente baze, odnosno programa. O osnovama ovog elementa aplikacije više možete pročitati na prethodnom času.

Otvorimo formu frmKomandnaTabla u režimu izmene dizajna. Tasterima ćemo prvo dodeliti nazive i prečice sa tastature za brz pristup. Na prošlom času napravljeni plan za raspored tastera ćemo dopuniti na sledeći način, predviđajući naziv tastera i tekst koji će se nalaziti na njemu:

Opis Name Caption
Izdavanje / vraćanje knjige Izdavanje &Izdavanje / Vraćanje knjiga
Forma 'frmCitaoci' Citaoci Čitao&ci
Forma 'frmKnjige' Knjige Knji&ge
Pregled dužnika Duznici Pregled &dužnika
Pregled svih knjiga SveKnjige Pregled &svih knjiga
Pregled izdatih knjiga po čitaocima IzdateKnjige Pregled i&zdatih knjiga
Arhiviranje baze + Kompresija baze Arhiva Kompesija i &arhiviranje programa
Kraj rada Kraj &Kraj rada

Osobina Name je naziv tastera čije se ime upotrebljava u programu, dok je Caption tekst koji će se ispisivati na tasterima. Znak & (tzv. ampersend) ispred određenog karaktera označava prečicu sa tastature za pristup tom tasteru. U našem primeru ispred karaktera "d" na tasteru "Pregled &dužnika" stoji znak &, što Accessu (ovo je standardizovano na nivou operativnog sistema) govori da se pritiskom na tastaturu, na slovo "d" aktivira odgovarajući taster na formi, kao da smo levim klikom miša kliknuli na njega. Obratite pažnju da, dok je forma u fokusu, nije neophodno kombinovati hot-key sa tasterom ALT. Za pretpostavku, ako se nekom od menija pristupa preko tastera sa &d i ako je u isto vreme aktivna forma koja na sebi ima taster sa &d, meniju ćemo pristupiti sa ALT+d, a tasteru na formi samo pritiskom na d.

Valja obratiti pažnju da se na formi ne postavi isti hot-key za pristup dvoma komandnim tasterima: pri aktiviranju "vrućeg tastera" aktiviraće se prvi na formi.

Postavimo osobinu fonta za taster "Kraj rada" na "bold". Sada komandna tabla treba da ima sledeći izgled:

Klikni za punu sliku

NAPOMENA: da bi datum u naslovu bio formatiran tačno kao na ovoj slici, potrebno je da u apletu Regional Settings u Control Panelu, na listu Date, u polje Long Date Style postavite masku datuma dddd, d. MMMM yyyy.

Vratimo se u režim izmene dizajna za ovu formu i pođimo od jednostavnijih događaja. Prvo, za taster "Kraj" postavimo sledeći program u njegov događaj OnClick:

Dim Response As Integer
Response = MsgBox("Kraj rada?", vbYesNo, "Pažnja!")

If Response = vbYes Then
    DoCmd.Quit
Else
    Cancel = True
    Response = acDataErrContinue
End If

Klikom na taster "Kraj rada" ili pritiskom na taster (sa tastature!) k Access postavlja kontrolno pitanje.

Odgovorom na Yes (ili samo y sa tastature) program završava rad. Odgovorom naNo (ili n) poništava se akcija, preskače se poruka o grešci koju Access generiše i program nastavlja rad. Kontrolno pitanje nije neophodno, ali sprečava slučajan izlazak iz programa, ako operater nehotice pritisne taster k na komandnoj tabli.

Forma za pristup knjigama i čitaocima ćemo pristupati preko tastera "Citaoci" i "Knjige". Za taster "Citaoci" postavimo sledeći program u događaj OnClick:

DoCmd.Minimize
DoCmd.OpenForm "frmcitaoci", acNormal

Ova dva reda programa prvo minimizuju Komandnu tablu i prikazuju formu frmCitaoci. Nakon što operater zatvori formu frmCitaoci, Komandna tabla treba da vrati prvobitni oblik. Za taster "Citaoci" postavimo još jedan programski red u događaju OnGotFocus:

DoCmd.Restore

Nakon što snimite izmene i kliknete na taster "Citaoci", Komandna tabla se minimizuje i otvara se forma za rad sa čitaocima. Ali, kada na formi za rad sa čitaocima kliknemo na taster "Zatvori masku", aktivna forma se zatvara, a Komandna tabla ostaje umanjena! Naime, nama je aktivan i prozor baze i on prvi dobija fokus nakon zatvaranja forme frmCitaoci. U normalnim okolnostima, prozor baze se drži sakriven i Komandna tabla će prva dobiti fokus, odnosno, aktiviraće se događaj OnGotFocus na tasteru "Citaoci" koji će vratiti formi prvobitnu veličinu. Ovo ponašanje će biti jasnije u kasnijoj fazi razvoja programa, kada budemo prozor baze držali sakrivenim.

Proceduru opisanu za taster "Citaoci" sprovedimo i na njemu susedni - "Knjige" sa jednom izmenom: umesto frmCitaoci u događaju OnClick postavićemo frmKnjige.

Ovim smo razrešili ponašanje tri tastera na komandnoj tabli.

NAPOMENA: u programima sa mnogo formi ne praktikuje se stalno otvaranje i zatvaranje formi, jer se tako gubi na brzini rada aplikacije. Umesto metoda DoCmd.OpenForm i DoCmd.Close koriste se metode Hide i Show. Naime, sve forme se po startu aplikacije učitaju u memoriji i sakriju se od prikaza. Zatim se, po potrebi, promenom parametara Hide i Show menja njihova vidljivost. Ova operacija je praktično trenutna, ali po cenu povećane potrošnje radne memorije.

Prvi izveštaj

Prvi izveštaj ćemo kreirati za taster Komandne table "Pregled svih knjiga". Izveštaj je jednostavan i ne zahteva posebne kriterijume upita, jer prikazuje sve knjige u našoj biblioteci.

Zatvorimo Komandnu tablu i pređimo na karticu Reports. Klikom na taster New i iz menija odaberimo Design View. Otvorimo karticu osobina za izveštaj i Record Source postavimo na Knjige. Spisak polja table knjige dobijamo u zasebnom prozoru.

Pre nego što pređemo na dizajniranje izveštaja i raspoređivanje polja, objasnićemo izgled "sirovog", praznog izveštaja.

Osnovni izveštaj je podeljen na tri sekcije. U prvu, gornju, pod nazivom Page Header se postavlja naslov izveštaja, eventualno datum i neki drugi sličan sadržaj koji se pojavljuje samo na prvo strani. U drugu sekciju pod nazivom Details se postavljaju polja koji su nosioci podataka. Tu se može postaviti i tekst, ali će se on za svaki zapis iz tabele ili upita ponavljati za svaki prikazani slog. U poslednju sekciju Page Footer postavlja se sadržaj koji se nalazi samo na kraju izveštaja.

Izveštaj treba da je pregledan i jednostavan, uz minimalnu količinu dodatnih informacija. Ako nije neophodno postaviti vreme i datum štampanja to ne treba ni raditi. U našem slučaju interesuje nas sa koliko ukupno knjiga raspolaže biblioteka i kog datuma je izveštaj sačinjen.

U sekciju Page Header postavićemo jednu labelu u kojoj ćemo upisati Pregled svih knjiga. Za font i veličinu predlažem Arial, 16, bold. Uravnajmo centralno u odnosu na list ovu labelu. Postavimo još jednu labelu u gornjem levom uglu hedera i u nju upišimo Biblioteka: ovde dođe naziv!.

Iz liste polja tabele Knjige selektujmo prvu stavku ID_Knjiga i prevucimo je na izveštaj u drugu sekciju - Details:

Selektujmo labelu ID_Knjiga i obrišimo je, tako da ostane samo polje sa podacima ID_Knjiga. Ovo polje umanjimo i premestimo ga u gornji levi ugao sekcije Details. Zatim u sekciji Page Header postavimo novu labelu, u nju upišimo ID i uravnajmo ispis teksta centralno. Ovu labelu postavimo tik iznad sekcije Details iznad polja ID_Knjiga, tako da po veličini bude jednaka sa poljem:

Uradimo to i za preostala polja tabele Knjige:

Klikni za punu sliku

Sada "dovucimo" sekciju Page Footer do polja iz tabele Knjige:

Kako smo rekli da je datum veoma bitan za ovakvu vrstu izveštaja, postavimo jedan Text Box u sekciju futera, obrišimo njegovu labelu i za vrednost upišimo =Date(). Ova funkcija daje vrednost trenutnog datuma. Način ispisa možemo podesiti na kartici osobina za ovo polje, a ja predlažem da bude tipa Long Date, gde se ispisuje datum u obliku poput Ponedeljak, 5. Mart 2001. Uravnajmo ovo polje uz desnu ivicu izveštaja i ispis teksta postavimo na desno uravnanje.

Konačno, snimimo izveštaj pod imenom rptPregledSvihKnjiga i proverimo njegov izgled pritiskom na taster Preview.

Vratimo se Komandnoj tabli i događaju On Click pridružimo sledeći programski red:

DoCmd.OpenReport "rptPregledSvihKnjiga", acViewPreview
DoCmd.Maximize

U događaj On Got Focus postavimo:

DoCmd.Restore

Obratite pažnju da ako u programskom redu izostavite acViewPreview klik na taster će štampati izveštaj, umesto da ga prikaže na ekran.

Kako su događaji ostalih tastera neposredno vezani za modul izdavanja i vraćanja knjiga njih ćemo obraditi na sledećem času, jer prvo moramo osmisliti najefikasniji način rada sa zaduživanjem i razduživanjem.

Ako ste pažljivo pratili sve prethodne časove, verovatno ćete naći "rupu" u programu. Nešto što je veoma bitno za rad biblioteke, a na neki način je ispušteno, odnosno, na formama nije predviđeno da se nađe. Ako ste sami uspeli da dođete do pitanja i odgovora, možete opušteno sačekati sledeći čas. A ako niste, ne budite nestrpljivi! Odgovor ćete naći u jednom od sledećih časova. Do tada možete sami proširiti Komandnu tablu tasterom "Pregled svih čitalaca", uz koga ćete kreirati izveštaj za čitaoce.

Na sledećem času počinjemo od modula za izdavanje i vraćanje knjiga na koga će se nadovezati ostale funkcije Komandne table.

 Datoteka cas09.zip (127 kb) Možete preuzeti spakovanu datoteku baze Bibl_09.MDB sa razrađenim primerom (veličina ZIP datoteke je 127 kB), ako vam je ovaj deo do sada poznat ili ako vam vežba negde zapne.

REZIME ČASA 9

Nakon što smo u prvom delu kursa pažljivo razradili strukturu baze biblioteke i samo definisali par formi, odjednom smo prešli na suprotni kraj, definišući komandnu tablu koja je "najviši" sloj aplikacije; tek smo onda počeli da se bavimo operativnim jezgrom aplikacije. Neka vas to ne začudi, pošto je to uobičajena metoda brzog razvoja aplikacija (RAD - rapid application development). Malo smo pričali o povezivanju događaja sa tasterima komandne tabele, a potom krenuli sa još jednim važnim elementom aplikacije - izveštajima. Potrudite se da savladate elementarne tehnike povezivanja tabele i izveštaja, pošto izveštaji čine jedan od krajnjih ciljeva svake ozbiljne aplikacije.

 

Čas 10 - Izvršni moduli aplikacije

 

  (C) 2000-2009 Praktikum na Webu

8. mart 2001.


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana.