الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Master Details idea

مغلق
بدأه Kimo_2005 في 12 سبتمبر 2005 · 4 رد · 722 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اسأل عن فكرة تسجيل البيانات ذات علاقة One-To-Many , فمثلا عندى جدولين الاول هو جدول اوامر التوريد وهو يحتوى على بيانات اوامر التوريد مثل تاريخ تحرير الامر والمورد ...الخ , والثانى هو جدول تفاصيل اوامر التوريد وهو يحتوى على مجموعة الاصناف التى وردت فى امر التوريد أى تفاصيل كل امر من اوامر التوريد

والسؤال هو عند الاضافة فى الجدول الاول فالعملية سهلة جدا لانها تتم بالطرق التقليدية ولكن المشكلة هى عند التسجيل فى الجدول الثانى جدول التفاصيل فسيتم الاضافة كما تعلموا بدلالة رقم امر التوريد والذى يوجد طبعا فى الجدول الاول حتى نحدد ان هذة الاصناف مرتبطة بذلك الامر فكيف اعلم الرقم الذى سوف اضيف بدلالتة تفاصيل الامر فى جدول تفاصيل اوامر التوريد هل اقوم بالتسجيل اولا فى الجدول الاول جدول الاوامر ثم اعمل استعلام لاحضار آخر رقم سجل فى الجدول ثم اقوم بعدها بالتسجيل فى جدول التفاصيل بدلالة هذا الرقم

اظنها طريقة صعبة وطويلة ولها تأثير قطعا على اداء البرامج :blink:

أرجوا الافادة لو سمحتوا

#2

السلام عليكم

لالا يا أخي الموضوع أسهل بكثير مما تتصور

كل الذي عليك أن تكون عامل ربط بين الجدولين فقط وذلك عن طريق ما يعرف بـ DataRelation Object

فإن قمت بإضافة صف في الجدول الرئيسي الاب سيكون كل محتوى الابن مرفق و مرتبط به .

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

في المثال يتضح المقال

#3

شكرا لك يا أخى على ردك

ولكن ليس هذا ماقصدتة فأنا اريد عملية تسجيل فى هذين الجدولين وليس عملية استرجاع لبيانات تم تسجيلها بالفعل فهذة عملية سهلة وحلها فى الـ relation , الجدولين فاضيين لسة وانا لسة هبدأ اضيف الـ Records بتاعتى فيهم جدول هسجل فية البيانات اجماليا (جدول أوامر التوريد) والثانى هسجل فية تفاصيل هذا الامر( مجموعة الاصناف التى وردت على امر التوريد)

فمثلا فى الجدول الاول هيكون فية الحقول التالية:-

1- OrderID

2- OrderDate

3- BillNo

والثانى هيكون فية الحقول التالية:-

1- OrderID

2- Item (الصنف)

زى ما انت شايف هناك حقل مشترك وهو OrderID وهو اللى هيتم على اساسة ربط العلاقة بين الجدولين , وسؤالى كان ازاى بعد ما اسجل فى الجدول الاول اجمالى الامر اروح واسجل تفاصيل هذا الامر فى الجدول الثانى , أكيد هيكون بدلالة رقم الامر (OrderID) واللى هكون لسة مش عارفة لانى هكون لسة مسجلة فى الجدول الاول يبقى حلها (العقيم مع الاسف :( ) انى بعد ما تنتهى عملية التسجيل فى الجدول الاول اروح عامل استعلام صغير يجيبلى Max(OrderId اللى فى الجدول الاول عشان اسجل بدلالتة فى الجدول الثانى

لكنها طريقة مرهقة للبرنامج جدا عشان كدة بسأل لو فى طريقة تانية

أرجوا يكون المعنى وصل صح المرة دى لانى مش هقدر اوضح اكتر من كدة , ومرة تانية المطلوب هو عملية تسجيل وليس استرجاع لبيانات فى جدولين بينهم علاقة

وشكرا

#4

السلام عليكم

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

و في نفس النموذج نضع مثلاً Datagrid لإظهار بيانات الابن .

طيب حتى ولو كانت العملية عملية إضافة Insert في جدول الاب , فبمجرد ما تضع المؤشر داخل خلية الـ DataGrid

سيظهر لك الرقم OrderID مباشرتاً في الخلية ثم تضيف ما تبقى من قيم.

السبب أن هنالك علاقة لا أكثر مع وجود BindingManagerBase Object ليتولى عملية الابحار في البيانات.

أما أذا كنت تريد إضافة بيانات الابن بشكل منفصل في نموذج أخر, فستخدم MAX أو @@IDENTITY لجلب أخر OrderID

والله أعلم.

تم تعديل هذه المشاركة بواسطة الغملاسي في 13 سبتمبر 2005 في 13:28

في المثال يتضح المقال

#5
اقتباس
أما أذا كنت تريد إضافة بيانات الابن بشكل منفصل في نموذج أخر, فستخدم MAX أو @@IDENTITY لجلب أخر OrderID

ماهى دى الطريقة اللى انا عاوز ابعد عنها لصعوبتها :rolleyes: دا غير كمان انها غير مجدية بالمرة فى حالة تعدد المستخدمين لان العملية هتكون مجرد انى اجلب آخر رقم فى الجدول مثلا رقم 25 واللى على ما اضيف بياناتى فى جدول الاجمالى يكون مستخدم آخر اضاف رقم امر توريد 26 ويكون هو دة آخر رقم موجود فى الجدول وبالتالى تتسجل علية اصناف هى اصلا ما وردتش فية

كان الله فى عونى :D

هذا الموضوع مغلق.

مواضيع مشابهة