Northwind 2.0 Developer Edition: Indkøbsordrer

Gælder for
Access til Microsoft 365 Access 2021 Access 2019

Vælg et emne nedenfor for at få mere at vide om indkøbsordrer i Northwind Developer Edition. 

Oversigt

Denne Dev Edition af eksempelprogrammet Northwind-indkøbsordrer har det eneste modul Indkøbsordrer. I Starter Edition løber produkterne aldrig tør for og skal aldrig købes. Denne Dev Edition udvider databaseskemaet (anvendte tabeller) i Northwind 2.0 Starter Edition og bruger mere avancerede funktioner. Det er stadig meningen, at den skal introducere dig til de vigtigste funktioner i Microsoft Access, ikke til at drive en bestemt virksomhed.

Brug af indkøbsordrer

  • Listen over indkøbsordrer er tilgængelig på båndet. Den har links til at åbne hver indkøbsordre.
  • Både indkøbsordrelisten og båndet har knappen Ny indkøbsordre til at åbne en ny, tom indkøbsordre. Du kan også oprette indkøbsordrer fra formularen >Produkter Knappen Omarranger produkt .
  • Knapperne i overskriften fører indkøbsordrerne gennem arbejdsprocessen gennem Send, Godkend, Modtag og Luk. De tilsvarende registreringsfelter i formularen er låst, fordi de kun skal angives programmeringsmæssigt ved at klikke på handlingsknapperne.
  • Hvis du vil godkende en købsordre, skal du have rettighed til godkendelse af købet. Du kan logge på som Andrew Cencini, der har rettigheden, eller give den til dig selv i System Administration > Privileges. Bemærk, at din evne til at gøre det er en af mange grunde til, at Northwind ikke er en applikation til produktionskvalitet. I den virkelige verden vil brugerne ikke kunne hæve deres egne tilladelser.
  • Linjeelementer i en indkøbsordre er valideret med hensyn til deres antal. Det skal mindst være den Mindste genbestillingsmængde, og ideelt set skal den få lageret op på mindst det Destinationsniveau, som er angivet for hvert produkt.
  • Når en indkøbsordre er modtaget, aktiveres særlig behandling for at distribuere disse produkter til ordrelinjeelementer, der har statussen Ingen lager , og angive dem til Allokeret. Et eventuelt resterende antal sendes til lageret. Der føjes en post til tabellen Lageropstilling .

Programmering af indkøbsordrer

Dette afsnit omhandler bemærkelsesværdige implementeringsoplysninger i indkøbsordreformularen, frmPurchaseOrderDetails:

  1. Indkøbsordreformularen henter sine data fra en simpel forespørgsel, qryPurchaseOrder (se egenskaben Postkilde ). Det er bedste fremgangsmåde at basere en dataindtastningsformular på en simpel forespørgsel. Bemærk, at det ikke er nødvendigt at medtage tabellen Indkøbsordredetaljer i denne forespørgsel. Detaljer håndteres af underformularen. Men forespørgslen bliver forbundet med andre tabeller for at hente de skrivebeskyttede felter StatusName, SubmittedBy og ApprovedBy .
  2. Formularen Indkøbsordreliste kan åbne flere forekomster af indkøbsordreformularen. Dette er praktisk, fordi PO-afdelingen håndterer mange afbrydelser og måske skal åbne en anden PO, mens der arbejdes på den første – eller sammenligne den med en tredje PO. Teknikken er dokumenteret her.
  3. Leverandør-id henter sin værdi fra et kombinationsfelt med to kolonner: en skjult id-kolonne og en synlig beskrivelseskolonne. Sådanne kombinationsfelter er bundet til simple forespørgsler med to kolonner: se egenskaben Rækkekilde .
  4. Når du gemmer en post, skal de påkrævede felter som minimum udfyldes. I Starter-udgaven lader vi standardfunktionsmåden for Access ske. i denne Dev-udgave er der implementeret en mere brugervenlig teknik – som beskrevet detaljeret nedenfor.
  5. Når status for købsordren går til Modtaget, aktiveres særlig behandling (procedure AllocateToInventory) for at distribuere den nye lagerbeholdning over ordrer, der venter på disse produkter.

VALIDERING

Valideringskoden, der er implementeret i Northwind Dev Edition, kræver kun tre linjer kode:

  • I Form_BeforeUpdate: Cancel = ValidateForm(Me)
  • I Form_AfterUpdate:ValidateForm_RemoveHighlights mig
  • I Form_Current: ValidateForm_RemoveHighlights mig

Dette er et godt mønster at følge: at gøre din kode meget selvstændig gør den nem at implementere overalt. Professionelle udviklere kan tage dette endnu længere, for eksempel ved hjælp af formularunderklassificering. (Dette ligger uden for målene for Northwind Dev.)

Den selvstændige valideringskode accepterer et formularobjekt, der skal valideres.  Den kontrollerer derefter den underliggende RecordsetClones formularsamling for at finde ud af, hvilke kontrolelementer der er bundet til påkrævede felter, og kontrollerer, om de har en værdi. Hvis de ikke gør det, fremhæves de. 

Få mere at vide