(29-05-18, 02:27 PM)atefkhalf2004 كتب : [ -> ]شكرا لك علي الفكرة الجيدة
وهي
اغمل حلقة تكرارية احصل فيها غلي الرصيد عقب كل ادخال او اخراج ويوضع ذلك في جدول ويعتبر هذا هو كارت الصنف
وهذه العملية سو ف تتأخذ وقت طويل جدا
ولكن شفت مرة استعلام واحد يحضر الرصيد عقب كل عملية ويكون الناتج كما وضعته في المشاركة الاولي
ان شاء الله سوف تصل اليه
ان شاء الله سوف نصل معا
الشكر لله
بالعكس انا قمت بشرحها
فى ثانياً / ثالثاً
تعال نطبق عملى بالكود على الملف المرفق لك مسبقاً
كود الاضافة الافتراضي
كود :
INSERT INTO adraseed (itcod, invsun, invqu, purqu, it_balance, invprc, invdate, purprc, makas) VALUES ('1302','شاحن اصلي 3','0','10',((SELECT LAST(it_balance) FROM adraseed WHERE itcod = 1302)+10-0),'60','29/05/2018','35','ش ص 3')
مع اخد بالاعتبار الجزء التالى فى كود الاضافة
كود :
((SELECT LAST(it_balance) FROM adraseed WHERE itcod = 1302)+10-0)
وهو كود الاستعلام الذى يتم عمله قبل كود الاضافة بالبرمجة
يارب الجزء ده يكون مبسط وواضح
طيب الطريقة دى قمت بإنشاء 2 كود مرة للاستعلام والاخر للاضافة
كيف اعمل كود واحد يكون هو ملخط كل ده
فى الوقت ده هيكون قاعدة البيانات مختلفة
ويجب ان يكون فى عدد 2 جدول
الاول خاص بالمنتجات ( جميع المنتجات بالمخازن بدون تكرار برقم كود غير مكرر )
الثاني وهو نفس الجدول الذى تتعامل معه بدون اى اختلاف من ثم تطبق الكود التالى
كود :
INSERT INTO adraseed (itcod, invsun, invqu, purqu, it_balance, invprc, invdate, purprc, makas) SELECT itcod, invsun, (0) as invqu, (10) as purqu, (it_balance + 10 - 0) as it_balance, (60) as invprc, ('29/05/2018') as invdate, (35) as purprc, ('ش ص 3') as makas FROM NameTable WHERE itcod = 1302
فكرة الكود ده التالى
انه بيعمل اضافة بناءاً على رقم كود المنتج المدخل فى Form
مع البيانات التالية وهى (كمية الشراء - كمية البيع - سعر الشراء - سعر البيع - تاريخ الفاتورة)
بحيث ان ما تم ذكر اسمائهم من الطبيعي غير موجدين فى جدول المنتجات لكن فقط فى جدول حركة المحزن
طيب نوضح اكتر كل جزء بالكود ليعم الفائدة على الجميع
الجزء الاول من الكود:
كود :
INSERT INTO adraseed (itcod, invsun, invqu, purqu, it_balance, invprc, invdate, purprc, makas)
هنا عبارة عن كود الاضافة عادى لكن بدون
كود :
VALUES ('قيم الاضافة')
وتم استبداله بهذا الجزء من الكود وهو
الجزء الثانى من الكود:
كود :
SELECT itcod, invsun, (0) as invqu, (10) as purqu, (it_balance + 10 - 0) as it_balance, (60) as invprc, ('29/05/2018') as invdate, (35) as purprc, ('ش ص 3') as makas FROM NameTable WHERE itcod = 1302
وهنا هو عملية استعلام لجلب بيانات المنتج من جدول المنتجات بنائاً على رقم المنتج المدخل فى Form
مع التوضيح التالى
كود :
SELECT itcod, invsun,
اول جزء الاستعلام هو جلب نتائج المنتج افتراضياً مع اخز بالاعتبار الترتيب لكود الاضافة وتشابه الاسماء
ومن حيث كلاً من ما يشابه التالى
كود :
(0) as invqu, (10) as purqu
وهو عملية ادراج اعمدة غير موجودة فى جدول المنتج
مثل كمية الشراء - كمية البيع - تاريخ الفاتورة - .... الخ
عند التعديل على الجزء ده هيكون مكان كل من رقم 0 و 10 والتاريخ
هو textbox لكل جزء فى الفورم
وبخصوص هذا الجزء
كود :
(it_balance + 10 - 0) as it_balance
هو قيمة الرصيد وهو موجود فى جدول المنتجات كما هو موجود فى جدول حركة المخازن
لكن بسبب التلاعب فيه فتم تعريفه على انه عمود غير موجود ى جدول المنتجات
حيث ان انا قمت بجلب يمة الرصيد من جدول المنتج من ثم قمت بعملية الجمع والطرح لعملية البيع والشراء
ليخرج صافي رصيد المخزن ليتم اضافته فى رصيد حركة المخازن
اتمنى حتى الان ان يكون الشرح مبسط وتفصيلى ودقيق بدون اى متاهة
الجزء الخاص بـ
وهنا مكان NameTable هو اسم جدول المنتجات
ويبقي فى النهاية
الخزء الخاص بـ
وهنا هو فلتر لرقم المنتج المدرج بنائاً على Form لاضافة حركة مخازن
الشروحات التى تمت كلها فى هذا الموضوع
اخز مجهود وتركيز كبير حتى لا اخطاء فى جزء وكى اتمكن من تسيط الامور ى الشرح
واسف اذا كان فى اخطاء فى الكتابة او نواثص احرف بسبب لوحة المفاتيح لدى
تحياتى لك
وتمنياتى لك التوفيق