تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

حدد أي موضوع أدناه للتعرف على إدارة الطلبات في إصدار مطور Northwind. 

إصدار المطور هذا من نموذج تطبيق Northwind Orders أكثر تقدما من إصدار Starter. وهو يتوسع في مخطط قاعدة البيانات (الجداول المستخدمة) ويوفر الآن ميزات متقدمة إضافية. الهدف هنا هو تعريفك بميزات Microsoft Access، وليس لتشغيل أي نشاط تجاري محدد.

  • تتوفر قائمة الطلبات من الشريط. يحتوي على بعض خيارات التصفية والارتباطات التشعبية لفتح كل طلب.

  • يحتوي كل من قائمة الطلبات والشريط على زر إضافة ترتيب لفتح ترتيب فارغ جديد.

  • في نموذج طلب جديد، حدد عميلا موجودا من القائمة المنسدلة. عند هذه النقطة، يتم تحديد اسم الموظف والحالة الجديدة . تم ملء تاريخ الطلب بالفعل أيضا. تتم قراءة معدل الضريبة من جدول SystemSettings ، ويتم تعيين الحالة الضريبية الافتراضية من سجل العميل.

  • تتم إضافة أوامر وأوامر شراء جديدة إلى قائمة MRU (الأحدث استخداما) في الشريط. تعرف على المزيد عبر قسم قائمة MRU في هذه المقالة

  • اترك تاريخ الشحنوتاريخ الدفع فارغين في الوقت الحالي.

  • لإضافة طلبات للعملاء الجدد، أدخل اسم الشركة واسحب علامة التبويب. سيتم فتح نموذج تفاصيل الشركة لإنهاء سجل العميل الجديد. ثم أغلقه وتابع الطلب. ستكون الشركة الجديدة الآن في القائمة المنسدلة Customer .

  • لإضافة عناصر إلى طلب، حدد فئة المنتجوالمنتج لهذا الطلب وأدخل الكمية. يتم تعبئة سعر الوحدة، ويتم حساب السعر بواسطة تعبير.

  • تقدم بحالة الطلب وانقل الطلب عبر سير العمل من جديد > فوترة > تم شحنها > مغلقة باستخدام الأزرار الموجودة أعلى نموذج الطلب.

  • يمكن أن يحدث الفوترة فقط إذا تم تخصيص المنتج لهذا الطلب. إذا كان عنصر السطر في حالة عدم وجود مخزون أو عند الطلب، فسيحدث خطأ في التحقق من الصحة. يمكن للمستخدم إنشاء أمر شراء لهذا المنتج وتلقيه، وسيتم تعديل حالة عنصر الطلب إلى مخصص.

  • لشحن طلب، يجب إدخال رسوم الشحن والشاحن. إذا نسيت القيام بذلك، فسيحدث خطأ في التحقق من الصحة. تتم إضافة رسوم الشحن إلى إجمالي الطلب.

  • يمكن حذف الطلبات غير المركبة باستخدام الزر حذف الطلب.

  • لا يمكن تعديل عناصر سطر الطلب بعد تجاوز الطلب للحالة جديد .

  • في إصدار Northwind Starter، تكون عملية الطلب بسيطة بشكل لا يصدق (على سبيل المثال، المخزون متاح دائما، ولا ينفد أبدا، ولا يلزم شراؤه أبدا). الآن، في إصدار Dev هذا، تعالج عملية أكثر واقعية بعض هذه المشكلات على الأقل. تذكر أننا نعرض ميزات Access وأفضل الممارسات، ولا ننفذ تطبيقا في العالم الحقيقي. 

  • تتضمن الأدلة على أننا لا ننفذ تطبيقا في العالم الحقيقي هنا حقيقة أن التواريخ لا يتم التحقق من صحتها. ومن ثم، من الممكن إدخال تواريخ غير منطقية مثل تاريخ الشحن قبل تاريخ الطلب. 

يتناول هذا القسم تفاصيل التنفيذ الجديرة بالملاحظة لنموذج الطلب، frmOrderDetails:

يحصل نموذج الطلب على بياناته من استعلام بسيط qryOrder (راجع خاصية RecordSource ). يعد إنشاء نموذج إدخال بيانات على استعلام بسيط من جدول واحد أفضل ممارسة. لاحظ أنه ليس من الضروري تضمين جدول OrderDetails في هذا الاستعلام. يتم التعامل مع تفاصيل الطلب بواسطة النموذج الفرعي.

يمكن لنموذج OrderList فتح مثيلات متعددة من نموذج الطلب. هذا مفيد لأن مندوبي المبيعات يتعاملون مع الكثير من الانقطاعات وقد يحتاجون إلى فتح طلب آخر أثناء العمل على الطلب الأول، أو مقارنتها بطلب ثالث. التقنية موثقة هنا.

تحصل حقول المعرف المختلفة على قيمها من مربعات التحرير والسرد المكونة من عمودين: عمود معرف مخفي، وعمود وصف مرئي. ترتبط مربعات التحرير والسرد هذه بالاستعلامات البسيطة المكونة من عمودين: راجع الخاصية RowSource .

تحتوي أزرار سير العمل على منطق عمل مقترن بها مما يجبر المستخدم على التقدم بالطلب من 1 إلى 4. يدرك فريق تطوير Northwind أن بعض الشركات قد تستخدم قواعد مختلفة. سيؤدي ذلك بعد ذلك إلى تنفيذ مختلف لأحداث النقر على الزر، بالإضافة إلى إعادة النظر في متى يكون الطلب محددا، ومتى لا يزال من الممكن حذف طلب.

يرتبط النموذج الفرعي sfrmOrderDetails باستعلام أكثر تعقيدا. تتم مناقشة أسباب ذلك في قسم Cascading Comboboxes أدناه. نتحقق من المخزون في حدث Form_AfterUpdate عند حفظ الصف ويمكننا تشغيل استعلامات قاعدة بيانات أكثر قوة.

ProductCategory وProduct هما مربعات تحرير وسرد متتالية: يؤدي التحديد من الأول (ProductCategory) إلى تضييق المربع التالي لمطابقة سجلات المنتج التابعة. توصف التقنية المستخدمة هنا بالتفصيل أدناه.

عند حفظ سجل، يجب ملء الحقول المطلوبة. في إصدار Starter، نسمح بحدوث السلوك الافتراضي ل Access؛ في إصدار Dev هذا، يتم تنفيذ تقنية أكثر سهولة للمستخدم. توصف التقنية المستخدمة هنا بالتفصيل أدناه.

لكل عنصر سطر أمر، يتم التحقق من المخزون المتاح ويتم تعيين الحالة وفقا لذلك. يتم وصف الفكرة الأساسية لهذه الميزة هنا.
 

مربعات التحرير والسرد المتتالية

يعد تنفيذ القائمة المنسدلة فئة المنتج والمنتج كقوائم تحرير وسرد متتالية أمرا صعبا لأن Access لا يدعم هذه الميزة خارج الصندوق. هناك أربع خطوات ضرورية في هذه التقنية:

يجب أن يكون النموذج في وضع النماذج المستمرة (وليس ورقة البيانات). تتداخل مربعات النص مع جزء النص من كل مربع تحرير وسرد، مما يترك أسهم القائمة المنسدلة الخاصة بها مرئية فقط. 

يستخدم استعلام مصدر سجل النموذج ، qryOrderLineItems، جدول OrderDetails بشكل معتاد، ولكنه ينضم أيضا إلى جداول Products وProductCategories لالتقاط ProductName وProductCategoryName. يرتبط مربعا النص المتراكبان بهذه الحقول.

يبحث RowSource لسرد المنتجات مرة أخرى في cboProductCategories لإرجاع منتجات للفئة المحددة في مربع التحرير والسرد هذا فقط. لاحظ بناء الجملة "[نموذج]! [cboProductCategories]" في تعبير المعايير، وهو أكثر مرونة من النماذج الصريحة! FormName! بناء جملة ControlName ، الذي يشير إلى نموذج واحد بالاسم.

بعد تحديد فئة منتج في مربع التحرير والسرد ProductCategories غير المحدد، يقوم حدث AfterUpdate الخاص به بتعيين مربع التحرير والسرد Products إلى القيمة الأولى في قائمته. يؤدي هذا إلى إنشاء صف جديد في RecordSource الخاص بالنموذج، والذي يملأ CategoryName بحيث يمكن عرضه بواسطة مربع النص المتداخل الخاص به.
 

التحقق

لا يستغرق استخدام التعليمات البرمجية للتحقق من الصحة التي تم تنفيذها في إصدار Northwind Dev سوى 3 أسطر من التعليمات البرمجية:

  • في Form_BeforeUpdate:
       إلغاء = ValidateForm(Me)

  • في Form_AfterUpdate Form_Current:
        ValidateForm_RemoveHighlights لي

يعد جعل التعليمات البرمجية قائمة بذاتها جدا نمطا جيدا يجب اتباعه لأنه يسهل التنفيذ في كل مكان. قد يأخذ المطورون المحترفون هذا الأمر إلى أبعد من ذلك، على سبيل المثال، باستخدام التصنيف الفرعي للنماذج. (هذا أبعد من أهداف Northwind Dev.)

يتم تمرير كائن النموذج إلى التعليمات البرمجية للتحقق من الصحة المضمنة ذاتيا للتحقق من الصحة. ثم يتحقق من مجموعة RecordsetClone Fields الأساسية لمعرفة عناصر التحكم المرتبطة بالحقول المطلوبة، ويتحقق مما إذا كانت لها قيمة. إذا لم يكن الأمر كذلك، يتم تمييزها.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟
بالضغط على "إرسال"، سيتم استخدام ملاحظاتك لتحسين منتجات Microsoft وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×