Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Επιλέξτε οποιοδήποτε θέμα παρακάτω για να μάθετε περισσότερα σχετικά με τη διαχείριση παραγγελιών στο Northwind Developer Edition. 

Αυτό το δείγμα εφαρμογής Northwind Orders έκδοσης προγραμματιστή είναι πιο προηγμένο από αυτό της έκδοσης εκκίνησης. Επεκτείνεται στο σχήμα της βάσης δεδομένων (οι πίνακες που χρησιμοποιούνται) και τώρα παρέχει πρόσθετες σύνθετες δυνατότητες. Σκοπός της εδώ είναι να σας παρουσιάσει τις δυνατότητες της Microsoft Access και όχι να διευθύνει κάποια συγκεκριμένη επιχείρηση.

  • Η λίστα παραγγελιών είναι διαθέσιμη από την κορδέλα. Διαθέτει μερικές επιλογές φίλτρου και υπερ-συνδέσεις για το άνοιγμα κάθε παραγγελίας.

  • Τόσο η Λίστα παραγγελιών όσο και η Κορδέλα διαθέτουν ένα κουμπί Προσθήκη σειράς για να ανοίξετε μια νέα κενή σειρά.

  • Σε μια φόρμα νέας παραγγελίας, επιλέξτε έναν υπάρχοντα πελάτη από την αναπτυσσόμενη λίστα. Σε αυτό το σημείο επιλέγεται το όνομα του υπαλλήλου σας και η νέα κατάσταση. Η ημερομηνία παραγγελίας έχει ήδη συμπληρωθεί. Ο φορολογικός συντελεστής διαβάζεται από τον πίνακα SystemSettings και οι προεπιλογές φορολογικής κατάστασης από την εγγραφή πελάτη.

  • Οι νέες παραγγελίες και οι παραγγελίες αγοράς προστίθενται στη λίστα MRU (Πρόσφατα χρησιμοποιημένα στοιχεία) στην κορδέλα. Μάθετε περισσότερα μέσω της ενότητας Λίστα MRU σε αυτό το άρθρο

  • Αφήστε τις ημερομηνίες "Ημερομηνία αποστολής" και "Ημερομηνία πληρωμής" κενές προς το παρόν.

  • Για να προσθέσετε παραγγελίες για νέους πελάτες, πληκτρολογήστε την επωνυμία της εταιρείας και πατήστε το πλήκτρο Tab. Θα ανοίξει η φόρμα λεπτομερειών εταιρείας για να ολοκληρωθεί η νέα εγγραφή πελάτη. Στη συνέχεια, κλείστε το και συνεχίστε με την παραγγελία. Η νέα εταιρεία θα βρίσκεται τώρα στην αναπτυσσόμενη λίστα "Πελάτης" .

  • Για να προσθέσετε στοιχεία σε μια παραγγελία, επιλέξτε μια Κατηγορία προϊόντος και ένα Προϊόν για αυτή την παραγγελία και εισαγάγετε Ποσότητα. Η τιμή μονάδας συμπληρώνεται και η τιμή υπολογίζεται με μια παράσταση.

  • Κατάσταση παραγγελίας εκ των προτέρων και μετακίνηση της παραγγελίας στη ροή εργασιών από τη νέα > > που στάλθηκε > κλειστή χρησιμοποιώντας τα κουμπιά στο επάνω μέρος της φόρμας παραγγελίας.

  • Η τιμολόγηση μπορεί να πραγματοποιηθεί μόνο εάν το προϊόν έχει εκχωρηθεί για τη συγκεκριμένη παραγγελία. Εάν ένα στοιχείο γραμμής είναι σε κατάσταση "Χωρίς μετοχή" ή "Με παραγγελία", θα παρουσιαστεί σφάλμα επικύρωσης. Ο χρήστης μπορεί να δημιουργήσει μια παραγγελία αγοράς για το συγκεκριμένο προϊόν και να την λάβει και η κατάσταση του στοιχείου παραγγελίας θα προσαρμοστεί σε Εκχώρηση.

  • Για να στείλετε μια παραγγελία, πρέπει να καταχωρήσετε τα έξοδα αποστολέα και αποστολής . Εάν ξεχάσετε να το κάνετε, θα παρουσιαστεί σφάλμα επικύρωσης. Τα έξοδα αποστολής προστίθενται στο σύνολο της παραγγελίας.

  • Οι μη αντιστοιχισμένες παραγγελίες μπορούν να διαγραφούν χρησιμοποιώντας το κουμπί "Διαγραφή παραγγελίας".

  • Τα στοιχεία γραμμής παραγγελίας δεν μπορούν να τροποποιηθούν μετά την παραγγελία μετά την κατάσταση Νέα .

  • Στην έκδοση Northwind Starter, η διαδικασία παραγγελίας είναι απίστευτα απλή (π.χ., το απόθεμα είναι πάντα διαθέσιμο, δεν εξαντλείται ποτέ και δεν απαιτείται αγορά). Τώρα, σε αυτήν την έκδοση Dev, μια πιο ρεαλιστική διαδικασία αντιμετωπίζει τουλάχιστον ορισμένα τέτοια προβλήματα. Να θυμάστε ότι παρουσιάζουμε δυνατότητες και βέλτιστες πρακτικές της Access, χωρίς να εφαρμόζουμε μια εφαρμογή από τον πραγματικό κόσμο. 

  • Το αποδεικτικό στοιχείο ότι δεν εφαρμόζουμε μια πραγματική εφαρμογή εδώ περιλαμβάνει το γεγονός ότι οι ημερομηνίες δεν επικυρώνονται. Ως εκ τούτου, είναι δυνατή η εισαγωγή παράλογων ημερομηνιών, όπως μιας ημερομηνίας αποστολής που είναι πριν από την ημερομηνία παραγγελίας. 

Αυτή η ενότητα αναφέρεται σε αξιοσημείωτες λεπτομέρειες υλοποίησης της φόρμας παραγγελίας, frmOrderDetails:

Η φόρμα παραγγελίας λαμβάνει τα δεδομένα της από ένα απλό ερώτημα qryOrder ( ανατρέξτε στην ιδιότητα RecordSource ). Η βάση μιας φόρμας καταχώρησης δεδομένων σε ένα απλό ερώτημα ενός πίνακα είναι η βέλτιστη πρακτική. Σημειώστε ότι δεν είναι απαραίτητο να συμπεριλάβετε τον πίνακα OrderDetails σε αυτό το ερώτημα. Ο χειρισμός των λεπτομερειών παραγγελίας γίνεται από τη δευτερεύουσα φόρμα.

Η φόρμα OrderList μπορεί να ανοίξει πολλές παρουσίες της φόρμας παραγγελίας. Αυτό είναι χρήσιμο, επειδή οι αντιπρόσωποι πωλήσεων αντιμετωπίζουν πολλές διακοπές και μπορεί να χρειαστεί να ανοίξουν μια άλλη παραγγελία ενώ εργάζονται στην πρώτη ή να τη συγκρίνουν με μια τρίτη παραγγελία. Η τεχνική τεκμηριώνεται εδώ.

Τα διάφορα πεδία αναγνωριστικού λαμβάνουν τις τιμές τους από σύνθετα πλαίσια δύο στηλών: μια κρυφή στήλη αναγνωριστικού και μια ορατή στήλη Περιγραφή. Αυτά τα σύνθετα πλαίσια είναι συνδεδεμένα με απλά ερωτήματα δύο στηλών: ανατρέξτε στην ιδιότητα RowSource .

Τα κουμπιά ροής εργασιών έχουν επιχειρηματική λογική που σχετίζεται με αυτά αναγκάζοντας το χρήστη να προωθήσει την παραγγελία από το 1 στο 4. Η ομάδα ανάπτυξης Northwind γνωρίζει ότι ορισμένες εταιρείες μπορεί να χρησιμοποιούν διαφορετικούς κανόνες. Αυτό θα έχει ως αποτέλεσμα διαφορετική υλοποίηση για τα συμβάντα κλικ κουμπιού, καθώς και επανεκτέλεσης όταν μια παραγγελία είναι οριστική και πότε μια παραγγελία εξακολουθεί να μπορεί να διαγραφεί.

Η δευτερεύουσα φόρμα sfrmOrderDetails είναι συνδεδεμένη με ένα πιο σύνθετο ερώτημα. Οι λόγοι για αυτό συζητούνται στην ενότητα Επικαλυπτόμενα σύνθετα πλαίσια παρακάτω. Ελέγχουμε για αποθέματα στο συμβάν Form_AfterUpdate κατά την αποθήκευση της γραμμής και μπορούμε να εκτελέσουμε πιο ισχυρά ερωτήματα βάσης δεδομένων.

Τα productCategory και Product είναι επικαλυπτόμενα σύνθετα πλαίσια: η επιλογή από το πρώτο (ProductCategory) περιορίζει την επόμενη στις αντίστοιχες εγγραφές θυγατρικών προϊόντων. Η τεχνική που χρησιμοποιείται εδώ περιγράφεται λεπτομερώς παρακάτω.

Κατά την αποθήκευση μιας εγγραφής, τα απαιτούμενα πεδία πρέπει να συμπληρωθούν. Στην έκδοση Starter, αφήνουμε την προεπιλεγμένη συμπεριφορά της Access να συμβεί. σε αυτήν την έκδοση Dev υλοποιείται μια πιο φιλική προς το χρήστη τεχνική. Η τεχνική που χρησιμοποιείται εδώ περιγράφεται λεπτομερώς παρακάτω.

Για κάθε στοιχείο γραμμής παραγγελίας, ελέγχεται το διαθέσιμο απόθεμα και η κατάσταση ορίζεται ανάλογα. Η βασική ιδέα αυτής της δυνατότητας περιγράφεται εδώ.
 

ΔΙΑΔΟΧΙΚΆ ΣΎΝΘΕΤΑ ΠΛΑΊΣΙΑ

Η εφαρμογή των αναπτυσσόμενων πλαισίων Κατηγορία προϊόντος και Προϊόν ως Διαδοχικά σύνθετα πλαίσια είναι δύσκολη, επειδή η Access δεν υποστηρίζει αυτήν τη δυνατότητα. Απαιτούνται τέσσερα βήματα σε αυτή την τεχνική:

Η φόρμα πρέπει να είναι σε λειτουργία συνεχούς φόρμας (όχι σε φύλλο δεδομένων). Τα πλαίσια κειμένου επικαλύπτουν το τμήμα κειμένου κάθε σύνθετου πλαισίου, αφήνοντας μόνο τα αναπτυσσόμενα βέλη τους ορατά. 

Το ερώτημα προέλευσης εγγραφών της φόρμας, qryOrderLineItems, χρησιμοποιεί τον πίνακα OrderDetails ανά συνηθισμένο, αλλά συνδέεται επίσης με πίνακες Products και ProductCategories για να πάρει το ProductName και το ProductCategoryName. Τα δύο επικαλυπτόμενα πλαίσια κειμένου είναι συνδεδεμένα με αυτά τα πεδία.

Το RowSource για το σύνθετο πλαίσιο "Προϊόντα" εξετάζει το cboProductCategories για να επιστρέψει μόνο προϊόντα για την κατηγορία που έχει επιλεγεί σε αυτό το σύνθετο πλαίσιο. Σημειώστε τη σύνταξη "[Φόρμα]! [cboProductCategories]" στην παράσταση κριτηρίων, η οποία είναι πιο ευέλικτη από τις ρητές φόρμες! FormName! Σύνταξη ControlName , η οποία αναφέρεται σε μία φόρμα με βάση το όνομα.

Αφού επιλέξετε μια κατηγορία προϊόντος στο μη δεσμευμένο σύνθετο πλαίσιο ProductCategories , το συμβάν AfterUpdate ορίζει το σύνθετο πλαίσιο Προϊόντα στην πρώτη τιμή στη λίστα του. Αυτό δημιουργεί μια νέα γραμμή στο RecordSource της φόρμας, η οποία συμπληρώνει το CategoryName , ώστε να μπορεί να εμφανιστεί από το επικαλυπτόμενο πλαίσιο κειμένου.
 

ΕΠΙΚΎΡΩΣΗ

Η χρήση του κώδικα επικύρωσης που εφαρμόζεται στην έκδοση Northwind Dev λαμβάνει μόνο 3 γραμμές κώδικα:

  • Στο Form_BeforeUpdate:
       Cancel = ValidateForm(Me)

  • Σε Form_AfterUpdate και Form_Current:
        ValidateForm_RemoveHighlights εμένα

Κάνοντας τον κώδικα πολύ αυτόνομο είναι ένα καλό μοτίβο για να τον ακολουθήσετε, επειδή διευκολύνει την εφαρμογή του παντού. Οι επαγγελματίες προγραμματιστές μπορεί να το προωθήσουν ακόμη περισσότερο, για παράδειγμα, χρησιμοποιώντας υποκατηγορία φορμών. (Αυτό είναι πέρα από τους στόχους για northwind Dev.)

Το αντικείμενο φόρμας μεταβιβάζεται στον αυτόνομο κωδικό επικύρωσης για επικύρωση. Στη συνέχεια, ελέγχει την υποκείμενη συλλογή RecordsetClone Fields για να βρει ποια στοιχεία ελέγχου είναι δεσμευμένα με τα απαιτούμενα πεδία και ελέγχει εάν έχουν μια τιμή. Εάν δεν το κάνουν, επισημαίνονται.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×