Izaberite bilo koju temu ispod da biste saznali više o upravljanju porudžbinama u Northwind developer Edition.
Ovo developer Izdanje uzorka aplikacije Northwind Orders je naprednije od starter izdanja. Širi se na šemu baze podataka (tabele koje se koriste) i sada pruža dodatne napredne funkcije. Namera ovde je da vas uvedem u funkcije programa Microsoft Access, a ne da vodite bilo koji određeni posao.
-
Lista porudžbina je dostupna na traci. Ima nekoliko opcija filtera i hiperveze za otvaranje svake porudžbine.
-
I lista porudžbina i traka imaju dugme Dodaj porudžbinu da bi otvorile novu praznu porudžbinu.
-
U obrascu "Nova porudžbina" izaberite postojećeg klijenta sa padajuće liste. Tada će biti izabrano ime zaposlenog i novi status. Datum porudžbine je već popunjen. Poreska stopa se čita iz tabele SystemSettings i podrazumevane vrednosti statusa poreza iz zapisa "Klijent".
-
Nove porudžbine i izlazne porudžbine dodaju se na MRU (Poslednje korišćeno) listi na traci. Saznajte više putem odeljka MRU lista u ovom članku.
-
Datum isporuke i Datum isporukeostavite prazne za sada.
-
Da biste dodali porudžbine za nove klijente, unesite ime preduzeća i odaberite karticu. Obrazac sa detaljima o preduzeću će se otvoriti da bi završio zapis o novom klijentu. Zatim ga zatvorite i nastavite sa porudžbinom. Novo preduzeće će sada biti u padajućoj listi "Klijent".
-
Da biste dodali stavke u porudžbinu , izaberite kategoriju proizvoda i proizvod za ovu porudžbinu i unesite Količina. Popunjava se cena po jedinici, a Cena se izračunava pomoću izraza.
-
Napredni status porudžbine i premeštajte porudžbinu kroz tok posla iz stavke Novi > Fakturisano > Isporučeno > Zatvoreno pomoću dugmadi na vrhu obrasca "Porudžbina".
-
Fakturisanje može da se desi samo ako je proizvod dodeljen za tu porudžbinu. Ako je stavka reda u statusu "Bez zaliha" ili "Na porudžbini", pojaviće se greška u validaciji. Korisnik može da kreira izlaznu porudžbinu za taj proizvod i da ga primi, a status stavke porudžbine će biti korigovan na " Dodeljeno".
-
Da biste isporučili porudžbinu , morate uneti naknadu za špeditera i isporuku. Ako to zaboravite, pojaviće se greška u proveri valjanosti. Naknada za isporuku dodaje se u ukupnu vrednost porudžbine.
-
Neisporučene porudžbine mogu da se izbrišu pomoću dugmeta Izbriši porudžbinu.
-
Nije moguće izmeniti stavke reda porudžbine kada porudžbina istekne sa statusom "Novo ".
-
U Northwind Starter verziji, proces porudžbine je neverovatno jednostavan (npr. inventar je uvek dostupan, nikada ne izlazi i nikada ne mora da se kupuje). Sada, u ovom Dev izdanju, realniji proces rešava najmanje neke takve probleme. Ne zaboravite da prikazujemo Access funkcije i najbolje prakse, ne primenjujemo aplikaciju u realnom svetu.
-
Dokazi da ovde ne primenjujemo aplikaciju u stvarnom svetu uključuje činjenicu da se ne proverava valjanost datuma. Stoga je moguće uneti nelogičke datume kao što je datum isporuke pre datuma porudžbine.
Ovaj odeljak se poziva na vredne detalje primene obrasca porudžbine, frmOrderDetails:
Obrazac porudžbine preuzima podatke iz jednostavnog upita qryOrder (pogledajte svojstvo RecordSource ). Najbolja praksa je zasnivanje obrasca za unos podataka na jednostavnom upitu za jednu tabelu. Imajte na umu da nije neophodno da uključite tabelu "DetaljiPorudžbine " u ovaj upit. Detaljima porudžbine upravlja podobrazac.
Obrazac "Lista porudžbina" može da otvori više instanci obrasca "Porudžbina". Ovo je korisno jer predstavnici prodaje rade sa mnogo ometanja i možda će morati da otvore drugu porudžbinu prilikom rada na prvoj porudžbini ili da je uporedite sa trećom porudžbinom. Tehnika je dokumentovana ovde.
Različita polja sa ID-om dobijaju vrednosti iz kombinovanih okvira od dve kolone: skrivene kolone sa ID-om i vidljive kolone Opis. Ovi kombinovani okviri su povezani sa jednostavnim upitima od dve kolone: pogledajte svojstvo RowSource .
Dugmad toka posla imaju poslovnu logiku povezanu sa njima, što nameće korisniku da pređe redosled sa 1 na 4. Northwind Development tim je svestan da neka preduzeća mogu da koriste različita pravila. To bi zatim dovelo do različite primene za događaje klika na dugme, kao i ponovno razmatranje toga kada je porudžbina definisana i kada se porudžbina i dalje može izbrisati.
Podobrazac sfrmOrderDetails je povezan sa složenijim upitom. Razlozi za to se raspravljaju u dolenavedenom odeljku Kaskadni kombinovani okviri. Proveravamo da li postoje zalihe u Form_AfterUpdate kada se red sačuva i možemo da pokrenemo moćnije upite za baze podataka.
Kategorija proizvoda i proizvod su kaskadni kombinovani okviri: izborom iz prvog (Kategorija Proizvoda) sužava se sledeći zapis podređenog proizvoda. Tehnika koja se ovde koristi je detaljno opisana u nastavku.
Prilikom čuvanja zapisa, obavezna polja moraju biti popunjena. U Starter izdanju omogućavamo da se dogodi podrazumevano ponašanje programa Access; u ovom Dev izdanju primenjuje se tehnika prilagođena korisnicima. Tehnika koja se ovde koristi je detaljno opisana u nastavku.
Za svaku stavku reda porudžbine proveravaju se dostupne zalihe, a status se postavlja u skladu sa s toga. Osnovna ideja ove funkcije je opisana ovde.
KASKADNI KOMBINOVANI OKVIRI
Primena padajućih lista "Kategorija proizvoda" i "Proizvod" kao kaskadnih kombinovanih okvira je komplikovana jer Access ne podržava ovu funkciju van okvira. Četiri koraka su neophodna u ovoj tehniki:
Obrazac mora biti u neprekidnom Forms (ne u listu sa podacima). Okviri za tekst se preklapaju sa tekstualnim delovima svakog kombinovanog okvira, tako da su vidljive samo njihove padajuće strelice.
Upit izvora zapisa obrasca qryOrderLineItems koristi tabelu " OrderDetails " po uobičajenoj vrednosti, ali se takođe spaja sa tabelama "Proizvodi" i "Kategorije proizvoda" da bi preuzeo Ime Proizvoda i ImeKategorije Proizvoda. Dva okvira za tekst koji se preklapaju su povezana sa ovim poljima.
RowSource za kombinovani okvir "Proizvodi" se vraća u cboProductCategories kako bi vratio samo proizvode za kategoriju izabranu u tom kombinovanom okviru. Obratite pažnju na sintaksu "[Obrazac]! [cboProductCategories]" u izrazu kriterijuma, koji je fleksibilniji od eksplicitnog Forms! FormName! ControlName sintaksa, koja upućuje na jedan obrazac po imenu.
Kada izaberete kategoriju proizvoda u nepovezanom kombinovanom okviru "Kategorije proizvoda", njegov događaj AfterUpdate postavlja kombinovani okvir Proizvodi na prvu vrednost na listi. Tako se pravi novi red u izvoru zapisa obrasca koji popunjava ImeKatemenata tako da može da se prikaže pomoću okvira za tekst koji se preklapa.
VALIDACIJE
Korišćenje koda za validaciju primenjenog u izdanju Northwind Dev traje samo 3 reda koda:
-
U Form_BeforeUpdate: Otkaži
= ValidateForm(Ja) -
U Form_AfterUpdate i Form_Current:
ValidateForm_RemoveHighlights Mene
Dobro je pratiti kôd koji se može sami primeniti jer ga je lako primeniti svuda. Profesionalni projektanti mogu ovo još više da udaljite, na primer korišćenjem potklase obrasca. (Ovo je izvan ciljeva za Northwind Dev.)
Objekat obrasca se prosleđuje samopotpisanim kodom za proveru valjanosti. Zatim proverava osnovnu kolekciju RecordsetClone Fields da bi saznala koje kontrole su povezane sa potrebnim poljima i proverila da li imaju vrednost. Ako to ne ukaže, one su istaknute.
-
Northwind 2.0 Developer Edition: Stvari koje treba da znate
-
Northwind 2.0 Developer Edition: Sve teme