29-08-16, 04:25 PM
تقدري تضيفي عمود في الداتاقريد اسمه state (وليكن مخفي مثلا) ولا تضيفيه الا في حالة وضع التعديل - يعني مش في وضع الفاتورة الجديدة
هذا العمود سجلي فيه حالة الصف (السطر) اما يكون
normal ومعناه ان السطر ما تعدلش وموجود من زمان في قاعدة البيانات
او new ومعناه ان السطر هذا جديد كليا ويجب اضافته الى قاعدة البيانات
او updated ومعناه ان السطر هذا تعدل عليه
او deleted ومعناه ان هذا السطر ماشي للحذف
في كود زر التعديل حتعملي حلقة foreach على صفوف الداتاقريد وتفحصي قيمة العمود state وبناء عليه تقومي بالاجراءات على قاعدة البيانات
اذا كان normal تجاوزه
اذا كان new اضيفه في جدول تفاصيل الفاتورة وعدل كمية المخزون في جدول المواد
اذا كان updated عدل قيمته وتفاصيله في جدول تفاصيل الفاتورة وعدل الكمية في جدول المواد
اذا كان deleted امسحه من جدول تفاصيل الفاتورة وارجع الكمية بالزيادة في جدول المواد
حتواجهك مشكلة مع اخر حالة (deleted) يعني ممكن لو حذفتي صف من الداتاقريد مش حيلاقيها بعدين لما تضغطي تعديل
لهذا ممكن تستغني عن حذف الصف والاكتفاء بتغيير لونه للاحمر مثلا دلالة على انه سوف يحذف وبهذه الطريقة يمكن للمستخدم التراجع عن الحذف ايضا لو اراد
او ممكن تضيفي داتاقريد اخرى لتخزين الصفوف التي ستحذف عند التعديل
ارجو ان تفيدك الفكرة
هذا العمود سجلي فيه حالة الصف (السطر) اما يكون
normal ومعناه ان السطر ما تعدلش وموجود من زمان في قاعدة البيانات
او new ومعناه ان السطر هذا جديد كليا ويجب اضافته الى قاعدة البيانات
او updated ومعناه ان السطر هذا تعدل عليه
او deleted ومعناه ان هذا السطر ماشي للحذف
في كود زر التعديل حتعملي حلقة foreach على صفوف الداتاقريد وتفحصي قيمة العمود state وبناء عليه تقومي بالاجراءات على قاعدة البيانات
اذا كان normal تجاوزه
اذا كان new اضيفه في جدول تفاصيل الفاتورة وعدل كمية المخزون في جدول المواد
اذا كان updated عدل قيمته وتفاصيله في جدول تفاصيل الفاتورة وعدل الكمية في جدول المواد
اذا كان deleted امسحه من جدول تفاصيل الفاتورة وارجع الكمية بالزيادة في جدول المواد
حتواجهك مشكلة مع اخر حالة (deleted) يعني ممكن لو حذفتي صف من الداتاقريد مش حيلاقيها بعدين لما تضغطي تعديل
لهذا ممكن تستغني عن حذف الصف والاكتفاء بتغيير لونه للاحمر مثلا دلالة على انه سوف يحذف وبهذه الطريقة يمكن للمستخدم التراجع عن الحذف ايضا لو اراد
او ممكن تضيفي داتاقريد اخرى لتخزين الصفوف التي ستحذف عند التعديل
ارجو ان تفيدك الفكرة

