delphi4arab منتديات دلفي للعرب
العمليات الحسابية في dbgrid - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : العمليات الحسابية في dbgrid (/showthread.php?tid=5057)



العمليات الحسابية في dbgrid - عبد الله - 25-03-2013

إخواني السلام عليكم
هل من الممكن إجراء عمليات حسابية في dbgrid بحيث : لنفرض بأنه عندي حقلين حفل لكمية المخزون و حقل للكمية المباعة هذا كله في dbgrid ، و عند وضع قيمة في edit للكمية المباعة يقوم البرنامج بوضعها في حقل الكمية المباعة ولكن عند إدخال قيمة أخرى للكمية المباعة في edit لنفس المادة فيقوم البرنامح بوضع القيمة الثانية فقط في حقل الكمية المباعة و لا يحتفظ بالقيمة الأولى في حقل الكمية المباعة بمعنى عدم جمع القيمتين مع بعضها البعض في حقل الكمية المباعة .
و جزاكم الله خيرا


العمليات الحسابية في dbgrid - AnoirsoftDeveloper - 25-03-2013

وعليكم السلام

توضيح
لنفرض أن :
حقل الكمية في المخزن = 99
حقل الكمية المباعة = 1

مثلا تم بيع 30 فإن النتيجة تكون كما يلي :
كمية المخزن : 69
حقل الكمية المباعة :31

العمليات :
1- الذهاب إلى السطر
2- التحقق من وجود الكمية اللازمة
3- إضافة الكمية المباعة في حقل الكمية المباعة ، ثم يقوم بطرح الكمية المباعة من حقل المخزن

الكود :
كود :
ADOTable1.First; if ADOTable1.Locate('no', LabeledEdit1.Text,[]) then //البحث عن رقم القطعة begin if ADOTable1Stock.Value>StrToInt(LabeledEdit2.Text) then //التأكد من وجود الكمية المطلوبة begin ADOTable1.Edit; ADOTable1Stock.Value:=ADOTable1Stock.Value-StrToInt(LabeledEdit2.Text); //طرح الكمية المطلوبة من الكمية الموجودة ADOTable1Ventes.Value:=ADOTable1Ventes.Value+StrToInt(LabeledEdit2.Text); //إضافة الكمية المطلوبة إلى حقل الكمية المباعة ADOTable1.Post; end else begin ShowMessage('الكمية المطلوبة غير موجودة '); end; end else begin ShowMessage('السجل غير موجود '); end; end;



العمليات الحسابية في dbgrid - عبد الله - 25-03-2013

أخي AnoirsoftDeveloper بارك الله فيك على الرد : و لكن المشكلة هي عندما يكون حقل الكمية المباعة فارغا يعطيك رسالة :لا يمكن تحويل المتغير من نوع variant إلى متغير من نوع null .
و المشكل الآخر و هو عدم إضافة المادة المياعة عند بيعها في حقل الكمية المباعة بمعنى يعطيك الكمية المباعة في الإجراء الأخير فقط . و جزاكم الله خيرا .


العمليات الحسابية في dbgrid - AnoirsoftDeveloper - 26-03-2013

عبد الله كتب :المشكلة هي عندما يكون حقل الكمية المباعة فارغا يعطيك رسالة :لا يمكن تحويل المتغير من نوع variant إلى متغير من نوع null .
معناه لا يمكن أن يكون الحقل فارغا على ما أظن ،أرفق محاولتك
* المشروع الذي أرفقته ليس برنامج كاملا (للفهم فقط).
عبد الله كتب :المشكل الآخر و هو عدم إضافة المادة المياعة عند بيعها في حقل الكمية المباعة بمعنى يعطيك الكمية المباعة في الإجراء الأخير فقط .
أخي حاول أن تفهم الكود ، الإجابة بسيطة جدا وهي تغيير قيمة الحقل مباشرة
كود :
ADOTable1Ventes.Value:=StrToInt(LabeledEdit2.Text); //إضافة الكمية المطلوبة إلى حقل الكمية المباعة



العمليات الحسابية في dbgrid - عبد الله - 27-03-2013

السلام عليكم و رحمة الله و بركاته
أخي لم أفهم قصدك بتغيير قيمة الحقل مباشرة
معذرة أخي على التعب