Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Výberom ľubovoľnej témy nižšie získate informácie o spravovaní objednávok vo vydaní Northwind Developer Edition. 

Toto vývojárske vydanie vzorovej aplikácie Northwind Orders je pokročilejšie ako vydanie Starter Edition. Rozbalí sa v schéme databázy (použité tabuľky) a teraz poskytuje ďalšie rozšírené funkcie. Zámerom je predstaviť vám funkcie programu Microsoft Access, nie prevádzkovať žiadnu konkrétnu firmu.

  • Zoznam objednávok je k dispozícii na páse s nástrojmi. Obsahuje niekoľko možností filtrovania a hypertextové prepojenia na otvorenie jednotlivých objednávok.

  • Zoznam objednávok aj pás s nástrojmi obsahujú tlačidlo Pridať objednávku na otvorenie nového prázdneho poradia.

  • Vo formulári Nová objednávka vyberte z rozbaľovacieho zoznamu existujúceho zákazníka. V tomto bode sa vyberie vaše meno zamestnanca a nový stav. Dátum objednávky je už tiež vyplnený. Sadzba dane sa číta z tabuľky SystemSettings a daňový stav sa predvolene zobrazuje v zázname Zákazník.

  • Nové objednávky a nákupné objednávky sa pridajú do zoznamu naposledy použitých mru na páse s nástrojmi. Ďalšie informácie nájdete v časti Zoznam MRU v tomto článku

  • Dátum odoslania a dátum zaplatenia ponechajte nateraz prázdne.

  • Ak chcete pridať objednávky pre nových zákazníkov, zadajte názov spoločnosti a kliknite na kartu. Otvorí sa formulár Podrobnosti o spoločnosti na dokončenie nového záznamu zákazníka. Potom ho zavrite a pokračujte v objednávke. Nová spoločnosť bude teraz v rozbaľovacom zozname Zákazník .

  • Ak chcete pridať položky do objednávky, vyberte kategóriu produktov a produkt pre túto objednávku a zadajte množstvo. Jednotková cena sa vyplní a cena sa vypočíta pomocou výrazu.

  • Advance Order Status and move the order through the workflow from New > Invoiced > Shipped > Closed using the buttons at the top of the Order form.

  • Fakturácia sa môže uskutočniť len vtedy, ak je produkt vyhradený pre danú objednávku. Ak sa položka riadka nachádza v stave Bez zásob alebo V objednávke, vyskytne sa chyba overenia. Používateľ môže vytvoriť nákupnú objednávku pre tento produkt a prijať ju a stav položky objednávky sa upraví na pridelené.

  • Ak chcete odoslať objednávku, musíte zadať špeditér a prepravný poplatok . Ak to zabudnete urobiť, vyskytne sa chyba overenia. Prepravný poplatok sa pripočíta k celkovej objednávke.

  • Unshipped orders can be deleted using the Delete Order button.

  • Položky riadka objednávky nie je možné upraviť po tom, ako objednávka presiakne nový stav.

  • Vo verzii Northwind Starter je proces objednávky neuveriteľne jednoduchý (napríklad inventár je vždy k dispozícii, nikdy sa nevyčerpá a nikdy si ho nemusíte zakúpiť). V tomto vydaní dev sa realistickejší proces zaoberá aspoň niektorými takýmito problémami. Nezabudnite, že zobrazujeme accessové funkcie a najvhodnejšie postupy, nie implementáciu aplikácie v reálnom svete. 

  • Dôkazy o tom, že v tomto prípade neimplikujeme aplikáciu v reálnom svete, zahŕňajú skutočnosť, že dátumy sa neoverujú. Preto je možné zadať nelogické dátumy, napríklad dátum dodania, ktorý je pred dátumom objednávky. 

Táto časť sa zaoberá pozoruhodnými podrobnosťami implementácie formulára Objednávky, frmOrderDetails:

Formulár objednávky získa svoje údaje z jednoduchého dotazu qryOrder (pozri vlastnosť ZdrojZáznamov ). Vytvorenie formulára na zadávanie údajov na jednoduchý dotaz s jednou tabuľkou je najvhodnejším postupom. Všimnite si, že do tohto dotazu nie je potrebné zahrnúť tabuľku OrderDetails . Podrobnosti objednávky spracováva podformulár.

Formulár OrderList môže otvoriť viaceré inštancie formulára Objednávky. Je to užitočné, pretože predajcovia sa zaoberajú množstvom prerušení a možno budú musieť otvoriť inú objednávku počas práce na prvej objednávke alebo ju porovnať s treťou objednávkou. Technika je tu zdokumentovaná.

Rôzne polia identifikácie získajú svoje hodnoty z rozbaľovacích polí s dvomi stĺpcami: skrytý stĺpec ID a viditeľný stĺpec Popis. Tieto rozbaľovacie polia sú viazané na jednoduché dotazy s dvoma stĺpcami: pozrite si vlastnosť ZdrojRiadkov .

K tlačidlám pracovného postupu je priradená pracovná logika, ktorá núti používateľa pokračovať v poradí od 1 do 4. Tím Northwind Development si je vedomý toho, že niektoré spoločnosti môžu používať rôzne pravidlá. To by potom malo za následok inú implementáciu pre udalosti kliknutia na tlačidlo, ako aj opätovné zváženie toho, kedy je objednávka definitívna, a kedy môže byť objednávka stále odstránená.

Podformulár sfrmOrderDetails je viazaný na zložitejší dotaz. Dôvody sú popísané v časti Kaskádové rozbaľovacie polia nižšie. Pri uložení riadka kontrolujeme inventár v udalosti Form_AfterUpdate a môžeme spúšťať výkonnejšie databázové dotazy.

ProductCategory a Product are Cascading comboboxes: selecting from the first (ProductCategory) narrows the next one to matching child Product records. Použitá technika je podrobne popísaná nižšie.

Pri ukladaní záznamu musia byť vyplnené požadované polia. V starter vydaní povoľujeme predvolené správanie Accessu. v tomto vydaní Dev je implementovaná používateľsky prístupnejšia technika. Použitá technika je podrobne popísaná nižšie.

Pre každú položku riadka objednávky sa skontroluje dostupný inventár a podľa toho sa nastaví stav. Tu je popísaný základný nápad tejto funkcie.
 

KASKÁDOVÉ ROZBAĽOVACIE POLIA

Implementácia rozbaľovacích zoznamov Kategória produktov a Produkt ako kaskádových rozbaľovacích polí je zložitá, pretože Access túto funkciu nepodporuje. V tejto technike sú potrebné štyri kroky:

Formulár musí byť v režime priebežných formulárov (nie v údajovom hárku). Textové polia prekrývajú textové časti každého rozbaľovacieho poľa, pričom viditeľné sú iba ich šípky rozbaľovacieho zoznamu. 

Dotaz zdroja záznamov formulára qryOrderLineItems používa tabuľku OrderDetails ako zvyčajne, ale spája sa aj s tabuľkami Produkty a KategóriaProduktov na vyzdvihnutie položiek NázovProduktu a NázovKategórieProduktov. Tieto dve prekrývajúce sa textové polia sa viažu na tieto polia.

RiadokSource pre rozbaľovacie pole Produkty sa obzrie späť na cboProductCategories vrátiť iba produkty pre kategóriu vybratú v danom rozbaľovacom poli. Všimnite si syntax [Form]! [cboProductCategories]" vo výraze kritérií, ktorý je flexibilnejší ako explicitné formuláre! FormName! Syntax ControlName , ktorá odkazuje na jeden formulár podľa názvu.

Po výbere kategórie produktu v neviazanom rozbaľovacom poli ProductCategories nastaví jeho udalosť AfterUpdate rozbaľovacie pole Produkty na prvú hodnotu vo svojom zozname. Tým sa vytvorí nový riadok v zdroji záznamov formulára, ktorý vyplní názovKategórie , aby ho bolo možné zobraziť jeho prekrývajúce sa textové pole.
 

OVERENIE

Použitie overovacieho kódu implementovaného vo vydaní Northwind Dev má len 3 riadky kódu:

  • V Form_BeforeUpdate:
       Zrušiť = ValidateForm(Me)

  • In Form_AfterUpdate and Form_Current:
        ValidateForm_RemoveHighlights Me

Tvorba kódu veľmi sebestačný je dobrý vzor sledovať, pretože to uľahčuje implementáciu všade. Profesionálni vývojári to môžu urobiť ešte ďalej, napríklad pomocou podtried formulára. (To je nad rámec cieľov pre Northwind Dev.)

Objekt formulára sa odovzdá do samostatného overovacieho kódu na overenie. Potom skontroluje základnú kolekciu polí RecordsetClone, zistí, ktoré ovládacie prvky sú viazané na povinné polia, a skontroluje, či majú hodnotu. Ak nie, zvýraznia sa.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×