السلام عليكم ورحمة الله وبركاته
سنقوم بهذا القسم بشرح بعض الدروس في ديلفي وسنركز على عدة أشياء منها
Master / detail , وعناصر تحكم ربط lookup , وحقول إرتباط داخل DBGrid , وغيرها إن شاء الله مع الأمثلة.
الدرس الأول :
شرح عملية master/detail أو بنى رئيسي / تفصيلي :
كثيراً ما نحتاج إلى ربط جداول لها علاقة واحد إلى كثير (one-to-many) أي لكل سجل في الجدول الرئيسي الكثير من السجلات في جدول ثانوي . ومثال على ذلك فاتورة وبنود الفاتورة , قائمة الزبائن وطلبات كل زبون.
وتدعم ديلفي دعماً صريحا ً بنى رئيسي \ تفصيلي (master/detail) بوجود الخاصية DataSource لإعداد مصدر بيانات رئيسي , وتستخدم هذه الخاصية في مجموعة بيانات تفصيلية للارتباط بالسجل الحالي في مجموعة البيانات الرئيسية , في تركيبة مع الخاصية master fields .
نبدأ بشرح العملية
أولا ً نقوم بعمل الجداول في قاعدة البيانات ولتكن Access
1- جدول الموردين four
2- جدول المنتجات Article
3- جدول الفواتير Statement
4- جدول تفصيل الفاتورة detailstat
ملاحظة: المفتاح الأساسي في جدول تفصيل الفاتورة وهو /رقم تفصيل الفاتورة /يجب أن يكون ترقيم تلقائي
ثم نقوم بعملية ربط الجداول وتحديد الحقول فرض التكامل المرجعي – تتالي تحديث الحقول المرتبطة – تتالي حذف السجلات المرتبطة
إضغط لإظهار المرفق
ثانيا ً : نقوم بربط الجداول بديلفي
جدول الموردين في فورم
جدول المنتجات في فورم
جدول الفواتير وجدول تفصيل الفواتير في فورم موضحة في الصورة
إضغط لإظهار المرفق
ثالثا ً والأهم :
1- نضع جدول تفصيل الفاتورة ضمن Object Inspector أو نضغط على أيقونته المجودة على الفورم الأساسي رقم 1
2- من Master Source نحدد الجدول الأساسي وهو جدول الفواتير Statement
3- من Master Fields نضغط على المفتاح الموجود عليها . تظهر لنا شاشة الربط
4- نحدد الحقل No_Ststement الموجود في Detial Fields
5- نحدد الحقل No_Statement الموجود في Master Fields
6- نضغط على Add
7- نضغط على
إضغط لإظهار المرفق
ويمكننا أن نعمل Master/Detail أيضا ً بين الموردين والفواتير لمعرفة كل مورد ماله من فواتير . ولكن هنا نحن بحاجة إلى مصدر بيانات ثاني لجدول الفواتير /Statement /.
نقوم بتعريف جدول ٍStatement من جديد إلى الفورم الأساسي ونسميه اسم جديد ثم نقوم بعملية master/Detail بينه وبين جدول الموردين.
وهناك مثال في المرفق يوضح كلا الحالتين .
في الدرس الثاني سنقوم بشرح عناصر ارتباط lookup وسنتابع في المثال نفسه كيف سنتعامل مع اسم المورد واسم المنتج بدلا ً من الأرقام.
بالتوفيق إن شاء الله
أرجو أن أكون قد وفقت بالشرح
