منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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

سوالى لا يختلف عن الموضوع الى فات الى سئلته هنا

لكن بشكل مختلف

انا عندى جريد فيو تعمل (ديتلز) بها اصناف مباعة
فرضنا ان العميل عدل كمية صنف   من قطعة لاكثر بعد الاضافة هنا هقوله عدل الجريد الديتلز عادى

السوال المهم بقه
لو زود اصناف على الفاتورة دى قبل ما يمشى وضغط على تعديل طبعا لان الفاتورة مضافة بالفعل
هنا ازاى اقوله بالكود عدل الاصناف بالكمية الى زادات اما الاصناف الى العميل زودها ضيفها للداتا بيز فى زر التعديل
المفروض يتم اضافة الاصناف المراد بيعها الى الداتاجريد فيو اولاً ثم حفظها في قاعدة البيانات دفعة واحدة وبالنسبة للفاتورة لاتوجد مشكلة حيث ستعرض الاصناف التي تم حفظها مؤخراً.
تقدري تضيفي عمود في الداتاقريد اسمه state (وليكن مخفي مثلا) ولا تضيفيه الا في حالة وضع التعديل - يعني مش في وضع الفاتورة الجديدة
هذا العمود سجلي فيه حالة الصف (السطر) اما يكون
normal ومعناه ان السطر ما تعدلش وموجود من زمان في قاعدة البيانات
او new ومعناه ان السطر هذا جديد كليا ويجب اضافته الى قاعدة البيانات
او updated ومعناه ان السطر هذا تعدل عليه
او deleted ومعناه ان هذا السطر ماشي للحذف

في كود زر التعديل حتعملي حلقة foreach على صفوف الداتاقريد وتفحصي قيمة العمود state وبناء عليه تقومي بالاجراءات على قاعدة البيانات

اذا كان normal تجاوزه
اذا كان new اضيفه في جدول تفاصيل الفاتورة وعدل كمية المخزون في جدول المواد
اذا كان updated عدل قيمته وتفاصيله في جدول تفاصيل الفاتورة وعدل الكمية في جدول المواد
اذا كان deleted امسحه من جدول تفاصيل الفاتورة وارجع الكمية بالزيادة في جدول المواد

حتواجهك مشكلة مع اخر حالة (deleted) يعني ممكن لو حذفتي صف من الداتاقريد مش حيلاقيها بعدين لما تضغطي تعديل
لهذا ممكن تستغني عن حذف الصف والاكتفاء بتغيير لونه للاحمر مثلا دلالة على انه سوف يحذف وبهذه الطريقة يمكن للمستخدم التراجع عن الحذف ايضا لو اراد
او ممكن تضيفي داتاقريد اخرى لتخزين الصفوف التي ستحذف عند التعديل


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

في كود زر التعديل حتعملي حلقة foreach على صفوف الداتاقريد وتفحصي قيمة العمود state وبناء عليه تقومي بالاجراءات على قاعدة البيانات

اذا كان normal تجاوزه
اذا كان new اضيفه في جدول تفاصيل الفاتورة وعدل كمية المخزون في جدول المواد
اذا كان updated عدل قيمته وتفاصيله في جدول تفاصيل الفاتورة وعدل الكمية في جدول المواد
اذا كان deleted امسحه من جدول  تفاصيل الفاتورة وارجع الكمية بالزيادة في جدول المواد

حتواجهك مشكلة مع اخر حالة (deleted) يعني ممكن لو حذفتي صف من الداتاقريد مش حيلاقيها بعدين لما تضغطي تعديل
لهذا ممكن تستغني عن حذف الصف والاكتفاء بتغيير لونه للاحمر مثلا دلالة على انه سوف يحذف وبهذه الطريقة يمكن للمستخدم التراجع عن الحذف ايضا لو اراد
او ممكن تضيفي داتاقريد اخرى لتخزين الصفوف التي ستحذف عند التعديل


ارجو ان تفيدك الفكرة

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