Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Výběrem libovolného tématu níže získáte informace o správě objednávek v edici Northwind Developer Edition. 

Tato vývojářská edice ukázkové aplikace Northwind Orders je pokročilejší než verze Starter Edition. Rozšiřuje schéma databáze (tabulky, které se používají) a nyní poskytuje další pokročilé funkce. Záměrem tohoto dokumentu je seznámit vás s funkcemi aplikace Microsoft Access, nikoli spouštět konkrétní firmy.

  • Seznam objednávek je k dispozici na pásu karet. Má několik možností filtru a hypertextové odkazy pro otevření každé objednávky.

  • Seznam objednávek i pás karet mají tlačítko Přidat objednávku, které otevře novou prázdnou objednávku.

  • Ve formuláři Nová objednávka vyberte z rozevíracího seznamu existujícího zákazníka. V tomto okamžiku je vybráno jméno zaměstnance a nový stav. Datum objednávky je už také vyplněné. Sazba daně se načítá z tabulky SystemSettings a z záznamu zákazníka se načte výchozí daňový stav.

  • Nové objednávky a nákupní objednávky se přidají do seznamu naposledy použitých položek na pásu karet. Další informace najdete v části Seznam jednotek mru v tomto článku

  • Pole Datum odeslání a Placené datum nechte zatím prázdné.

  • Pokud chcete přidat objednávky pro nové zákazníky, zadejte název společnosti a tabulátorem. Otevře se formulář Podrobnosti o společnosti, který dokončí nový záznam zákazníka. Pak ho zavřete a pokračujte v objednávce. Nová společnost teď bude v rozevíracím seznamu Zákazník .

  • Pokud chcete přidat položky k objednávce, vyberte pro tuto objednávku Kategorii produktu a Produkt a zadejte Množství. Jednotková cena se vyplní a cena se vypočítá výrazem.

  • Pomocí tlačítek v horní části formuláře Objednávky můžete upřesnit stav objednávky a pomocí tlačítek v horní části formuláře Objednávky můžete objednávku přesunout z nabídky Nový > Fakturované > Odesláno > Uzavřeno .

  • K fakturaci může dojít pouze v případě, že je pro danou objednávku přidělen produkt. Pokud je řádková položka ve stavu Žádné na skladě nebo V objednávce, dojde k chybě ověření. Uživatel může vytvořit nákupní objednávku pro tento produkt a obdržet ji a stav položky objednávky se upraví na Přiděleno.

  • Pokud chcete odeslat objednávku, musí být zadány poplatky zapřepravu a dopravce. Pokud to zapomenete udělat, dojde k chybě ověření. K celkovému součtu objednávky se přičtou poplatky za dopravu.

  • Neodručené objednávky je možné odstranit pomocí tlačítka Odstranit objednávku.

  • Řádkové položky objednávky nelze upravit poté, co je objednávka za stavEm Nový .

  • Ve verzi Northwind Starter je proces objednávky neuvěřitelně jednoduchý (např. inventář je vždy k dispozici, nikdy nevyjde a nikdy se nemusí kupovat). Nyní, v této edici Dev, realističtější proces řeší alespoň některé takové problémy. Mějte na paměti, že předvádíme funkce a osvědčené postupy Accessu, ne implementujeme reálnou aplikaci. 

  • Mezi důkazy, že zde neimigurujeme aplikaci z reálného světa, patří skutečnost, že se neověřují data. Proto je možné zadat nelogická data, jako je datum odeslání, které je před datem objednávky. 

Tato část se zabývá pozoruhodnými podrobnostmi implementace formuláře objednávky frmOrderDetails:

Formulář objednávky získá data z jednoduchého dotazu qryOrder (viz vlastnost RecordSource ). Osvědčeným postupem je založit formulář pro zadávání dat na jednoduchý dotaz s jednou tabulkou. Všimněte si, že v tomto dotazu není nutné zahrnout tabulku OrderDetails . Podrobnosti objednávky zpracovává podformulář.

Formulář Seznam objednávek může otevřít více instancí formuláře Objednávky. To je užitečné, protože obchodní zástupci se zabývají velkým množstvím přerušení a možná budou muset při práci na první objednávce otevřít další objednávku nebo ji porovnat s třetí objednávkou. Technika je popsaná tady.

Různá pole ID získávají své hodnoty ze dvousloupcových polí se seznamem: skrytý sloupec ID a viditelný sloupec Popis. Tato pole se seznamem jsou svázaná s jednoduchými dvousloupcovými dotazy: viz vlastnost RowSource .

K tlačítkům pracovního postupu je přidružená obchodní logika, která uživatele nutí posunout pořadí z 1 na 4. Tým Northwind Development si je vědom toho, že některé společnosti můžou používat různá pravidla. To by pak vedlo k odlišné implementaci událostí kliknutí na tlačítko a také k opětovnému zvážení, kdy je objednávka určena a kdy může být objednávka stále odstraněna.

Podformulář sfrmOrderDetails je vázán na složitější dotaz. Důvody jsou popsány v části Kaskádová pole se seznamem níže. Při uložení řádku kontrolujeme inventář v události Form_AfterUpdate a můžeme spouštět výkonnější databázové dotazy.

Pole se seznamem ProductCategory a Product jsou kaskádová: výběrem první položky (ProductCategory) se další položka zužuje na odpovídající podřízené záznamy Product. Zde použitá technika je podrobně popsána níže.

Při ukládání záznamu musí být vyplněna požadovaná pole. V edici Starter jsme nechali výchozí chování Accessu; v této edici Dev je implementována uživatelsky přívětivější technika. Zde použitá technika je podrobně popsána níže.

U každé položky řádku objednávky se zkontroluje dostupný inventář a stav se nastaví odpovídajícím způsobem. Základní myšlenka této funkce je popsaná tady.
 

KASKÁDOVÁ POLE SE SEZNAMEM

Implementace rozevíracích seznamů Kategorie produktu a Produkt jako kaskádových polí se seznamem je záludná, protože Access tuto funkci nepodporuje. V této technice jsou nezbytné čtyři kroky:

Formulář musí být v režimu Spojité formuláře (ne Datový list). Textová pole překrývají textová část každého pole se seznamem a zůstanou viditelné pouze jejich šipky rozevíracího seznamu. 

Dotaz na zdroj záznamů formuláře , qryOrderLineItems, používá tabulku OrderDetails podle obvyklých dat, ale také se spojí s tabulkami Products a ProductCategories a vyzvedne ProductName a ProductCategoryName. Dvě překrývající se textová pole jsou svázaná s těmito poli.

Pole se seznamem RowSource for the Products (Zdroj řádků pro produkty) se dívá na cboProductCategories a vrací pouze produkty pro kategorii vybranou v daném poli se seznamem. Všimněte si syntaxe [Form]! [cboProductCategories]" ve výrazu kritéria, který je flexibilnější než explicitní formuláře! FormName! Syntaxe ControlName , která odkazuje na jeden formulář podle názvu.

Po výběru kategorie produktu v nevázaných polích se seznamem ProductCategories nastaví událost AfterUpdate pole se seznamem Products na první hodnotu v seznamu. Tím se ve zdroji záznamů formuláře vytvoří nový řádek, který naplní Názevkategorie , aby ho bylo možné zobrazit v překrývajícím se textovém poli.
 

OVĚŘENÍ

Použití ověřovacího kódu implementovaného v edici Northwind Dev vyžaduje pouze 3 řádky kódu:

  • V Form_BeforeUpdate:
       Cancel = ValidateForm(Me)

  • V Form_AfterUpdate a Form_Current:
        ValidateForm_RemoveHighlights Já

Vytvoření kódu, který je velmi samostatný, je dobrým vzorem, protože usnadňuje jeho implementaci všude. Profesionální vývojáři to můžou udělat ještě dále, například pomocí podtříd formulářů. (To je nad rámec cílů pro Northwind Dev.)

Objekt formuláře se předá samostatnému ověřovacímu kódu k ověření. Potom zkontroluje podkladovou kolekci RecordsetClone Fields a zjistí, které ovládací prvky jsou vázané na povinná pole, a zkontroluje, jestli mají hodnotu. Pokud ne, zvýrazní se.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×