Wybierz dowolny temat poniżej, aby dowiedzieć się więcej o zarządzaniu zamówieniami w wersji Northwind Developer Edition.
Ta wersja deweloperska przykładowej aplikacji Northwind Orders jest bardziej zaawansowana niż wersja Starter. Rozszerza się na schemacie bazy danych (tabele, które są używane) i teraz zapewnia dodatkowe funkcje zaawansowane. Niniejszym zamierzamy przedstawić funkcje programu Microsoft Access, a nie prowadzić żadnej konkretnej firmy.
-
Lista zamówień jest dostępna na Wstążce. Istnieje kilka opcji filtrowania i hiperlinków umożliwiających otwarcie poszczególnych zamówień.
-
Zarówno lista zamówień, jak i Wstążka mają przycisk Dodaj kolejność, aby otworzyć nową pustą kolejność.
-
W formularzu Nowe zamówienie wybierz z listy rozwijanej istniejącego klienta. W tym momencie zostanie wybrane imię i nazwisko pracownika oraz nowy status. Data zamówienia jest już wypełniona. Stawka podatku jest odczytywana z tabeli SystemSettings , a stan podatku — z rekordu klienta.
-
Nowe zamówienia i zamówienia zakupu są dodawane do listy OSTATNIO używane na Wstążce. Dowiedz się więcej za pośrednictwem sekcji Lista MRU w tym artykule.
-
Pozostaw na razie puste pola Data wysyłki i Data zapłaty .
-
Aby dodać zamówienia dla nowych klientów, wprowadź nazwę firmy i przejdź na kartę. Formularz Szczegóły firmy zostanie otwarty w celu dokończenia nowego rekordu klienta. Następnie zamknij go i kontynuuj składanie zamówienia. Nowa firma będzie teraz na liście rozwijanej Klient .
-
Aby dodać elementy do zamówienia, wybierz kategorię produktu i pozycję Produkt dla tego zamówienia, a następnie wprowadź wartość Ilość. Argument Cena jednostkowa jest wypełniany, a wartość Cena jest obliczana za pomocą wyrażenia.
-
Przełączanie stanu zamówienia i przenoszenie zamówienia z nowego > > Zafakturowano > Wysłano za pomocą przycisków u góry formularza zamówienia.
-
Fakturowanie może się zdarzyć tylko wtedy, gdy produkt zostanie przydzielony do tego zamówienia. Jeśli element wiersza jest w stanie Brak akcji lub Przy zamówieniu, wystąpi błąd sprawdzania poprawności. Użytkownik może utworzyć zamówienie zakupu dla tego produktu i odebrać go, a stan zamówienia zostanie dostosowany do pozycji Przydzielone.
-
Aby wysłać zamówienie, należy wprowadzić opłatę zaspedytora i wysyłkę. Jeśli o tym zapomnisz, wystąpi błąd sprawdzania poprawności. Opłata za wysyłkę zostanie dodana do sumy zamówienia.
-
Odkodowane zamówienia można usunąć za pomocą przycisku Usuń kolejność.
-
Nie można modyfikować elementów wiersza zamówienia po przebyciem stanu Nowy .
-
W wersji Northwind Starter proces zamówienia jest niezwykle prosty (np. spis jest zawsze dostępny, nigdy się nie kończy i nigdy nie trzeba go kupować). Teraz, w tej wersji Dev, bardziej realistyczny proces rozwiązuje przynajmniej niektóre takie problemy. Pamiętaj, że prezentujemy funkcje programu Access i najlepsze rozwiązania, a nie zaimplementujemy aplikację w świecie rzeczywistym.
-
Dowody na to, że nie wdrażamy w tym miejscu rzeczywistego zastosowania, obejmują fakt, że daty nie są weryfikowane. W związku z tym można wprowadzić nielogiczne daty, takie jak Data wysyłki, która znajduje się przed datą zamówienia.
Ta sekcja dotyczy godnych uwagi szczegółów implementacji formularza Zamówienia, frmOrderDetails:
Formularz zamówienia pobiera dane z prostego zapytania qryOrder (zobacz właściwość RecordSource ). Najlepszym rozwiązaniem jest utworzenie formularza wprowadzania danych na podstawie prostego zapytania jednotajowego. Należy pamiętać, że nie jest konieczne uwzględnianie tabeli SzczegółyZamówień w tym zapytaniu. Szczegóły zamówienia są obsługiwane przez podformularz.
Formularz Listazamów może otwierać wiele wystąpień formularza Zamówienia. Jest to przydatne, ponieważ przedstawiciele handlowi mają do czynienia z wieloma przerwami i mogą potrzebować otwarcia kolejnego zamówienia podczas pracy nad pierwszym zamówieniem lub porównać je z trzecim zamówieniem. Technika jest tutaj udokumentowana.
Różne pola identyfikatorów pobierają wartości z dwukolumnowych pól kombi: ukrytej kolumny identyfikatora i widocznej kolumny Opis. Te pola kombi są powiązane z prostymi zapytaniami dwukolumnowymi: zobacz właściwość RowSource (ŹródłoWiołów ).
Z przyciskami przepływu pracy jest skojarzona logika biznesowa, która wymusza na użytkowniku przechodzenie z 1 do 4. Zespół Northwind Development zdaje sobie sprawę, że niektóre firmy mogą stosować inne zasady. Spowoduje to wówczas inną implementację zdarzeń kliknięcia przycisku, a także ponowne rozważenie, kiedy zamówienie jest określone i kiedy zamówienie nadal może zostać usunięte.
Podformularz sfrmOrderDetails jest powiązany z bardziej złożonym zapytaniem. Przyczyny tego są omówione w sekcji Kaskadowe pola kombi poniżej. Sprawdzamy zapasy w zdarzeniu Form_AfterUpdate po zapisaniu wiersza i możemy uruchamiać bardziej zaawansowane zapytania bazy danych.
Pola kombi KategoriaProduktu i Produkt są kaskadowe: wybranie pierwszego pola (KategoriaProduktu) powoduje zawężenie następnego do pasujących podrzędnych rekordów produktu. Technika używana w tym miejscu została opisana szczegółowo poniżej.
Podczas zapisywania rekordu wymagane pola muszą zostać wypełnione. W wersji Starter zezwalamy na zachowanie domyślne programu Access. w tej wersji Dev zaimplementowano technikę bardziej przyjazną dla użytkownika. Technika używana w tym miejscu została opisana szczegółowo poniżej.
Dla każdego elementu wiersza zamówienia sprawdzany jest dostępny spis, a stan jest odpowiednio ustawiany. Podstawowa idea tej funkcji została opisana tutaj.
KASKADOWE SKRZYNKI KOMBI
Wdrożenie list rozwijanych Kategoria produktu i Produkt jako kaskadowych pól kombi jest kłopotliwe, ponieważ program Access nie obsługuje tej funkcji. Ta technika wymaga wykonania czterech kroków:
Formularz musi być w trybie Forms ciągłym (nie arkusz danych). Pola tekstowe nakładają się na część tekstową każdego pola kombi, pozostawiając widoczne tylko ich strzałki listy rozwijanej.
Zapytanie źródłowe rekordów formularza, qryOrderLineItems, używa tabeli SzczegółyZamówień w zwykły sposób, ale także łączy się z tabelami Produkty i KategorieProduktów w celu wybrania wartości ProductName i ProductCategoryName. Dwa nakładające się pola tekstowe są powiązane z tymi polami.
Pole kombi Źródło_wiersza dla produktów sprawdza ponownie pozycję cboProductCategories , aby zwrócić tylko produkty dla kategorii wybranej w tym polu kombi. Zwróć uwagę na składnię "[Formularz]! [cboProductCategories]" w wyrażeniu kryterium, które jest bardziej elastyczne niż jawne Forms! FormName! Składnia ControlName, która odwołuje się do jednego formularza według nazwy.
Po wybraniu kategorii produktu w niepowiązanej skrzynce kombi KategorieProduktów jego zdarzenie AfterUpdate ustawia pole kombi Produkty na pierwszą wartość na liście. Spowoduje to utworzenie nowego wiersza w źródle rekordów formularza, który wypełnia pole CategoryName , aby można było je wyświetlić przez nakładające się pole tekstowe.
SPRAWDZANIA POPRAWNOŚCI
Za pomocą kodu sprawdzania poprawności zaimplementowanego w wersji Northwind Dev są pobierane tylko 3 wiersze kodu:
-
W Form_BeforeUpdate:
Cancel = ValidateForm(Me) -
W Form_AfterUpdate i Form_Current:
ValidateForm_RemoveHighlights Mnie
Tworzenie kodu bardzo samodzielny jest dobrym wzorcem do naśladowania, ponieważ ułatwia zaimplementowanie wszędzie. Profesjonalni deweloperzy mogą posunąć to jeszcze bardziej, na przykład za pomocą podklasy formularzy. (To wykracza poza cele Northwind Dev).
Obiekt formularza jest przekazywany do samodzielnego kodu sprawdzania poprawności w celu weryfikacji. Następnie sprawdza kolekcję RecordsetClone Fields, aby dowiedzieć się, które kontrolki są powiązane z wymaganymi polami, i sprawdza, czy mają wartość. Jeśli nie, zostaną one wyróżnione.
-
Northwind 2.0 Developer Edition: co należy wiedzieć
-
Northwind 2.0 Developer Edition: Wszystkie tematy