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=5694)

الصفحات: 1 2


كيف يمكن حساب جميع قيم جدول dbgrid - DJILANI - 05-11-2013

سؤالي كالتالي في الجدول الكبير على الجانب الأيسر DBGRID
أقوم بعملية الحساب وتخرج عندي ثلاث نتائج
النتيجة الاولى في EDIT 1 وفيها المبلغ الإجملي خارج الرسم(الكمية ضرب السعر )
في الخانة الثانية الرسم على القيمة المضافة 7 بالمئة(ضرب T_V_A في المبلغ الإجملي المقابل لها )
مثلا في مثالنا (4688 ضرب0.07 )+(4688 ضرب0.07 )
في الخانة الثالثة الرسم على القيمة المضافة 71 بالمئة(ضرب T_V_A في المبلغ الإجملي المقابل لها )
مثلا في مثالنا (2424 ضرب0.17 )+(2424 ضرب0.17 )
المشكل في الخانة الثانية والثالثة

PHP كود :
procedure TForm16.Button1Click(Sender: TObject);

var 
x,y,z,a,b,c:integer;
begin
z
:=0;
ADOTable3.close;
ADOTable3.open;
while 
not ADOTable3.Eof do
begin
x
:=ADOTable3.FieldByName('prix_P').Value  ;
y:=ADOTable3.FieldByName('quantite').Value;
z:=z+(x*y);
ADOTable3.Next;
EDIT1.text:=FloatToStr(z);
edit2.Text:=FloatToStr(z*0.07);
end; 
[صورة: hI9x3.png]


كيف يمكن حساب جميع قيم جدول dbgrid - makhlouf - 06-11-2013

السلام عليكم و رحمة الله تعالى و بركاته
أخي جرب التغيير في تعريف المتغيرات الى متغير حقيقي لعلها تحل المشكل
var x,y,z,a,b,c:real;
بالتوفيق


كيف يمكن حساب جميع قيم جدول dbgrid - DJILANI - 06-11-2013

شكرا أخ مخلوف على الرد لكن مشكلتي في الفلترة الحقل tva
فان كانت 7 بالمئة يقوم بجمع نتائجها في الخانة 2
وان كانت 17 بالمئة يقوم بجمع نتائجها في الخانة 3
لم أوفق في كتابة الشرط داخل الحلقة


كيف يمكن حساب جميع قيم جدول dbgrid - makhlouf - 06-11-2013

العفو يا اخي
جرب هذا الكود لعله ينفع:

بالتوفيق

procedure TForm16.Button1Click(Sender: TObject);

var x,y,z,a,b,c:real;
begin
z:=0;
ADOTable3.close;
ADOTable3.open;
while not ADOTable3.Eof do
begin
x:=ADOTable3.FieldByName('prix_P').Value ;
y:=ADOTable3.FieldByName('quantite').Value;
z:=z+(x*y);
ADOTable3.Next;
EDIT1.text:=FloatToStr(z);
if (ADOTable3.FieldByName('tva').Value)=0.07 then
edit2.Text:=FloatToStr(z*0.07)
else
edit3.Text:=FloatToStr(z*0.17);

end;

بالتوفيق


كيف يمكن حساب جميع قيم جدول dbgrid - DJILANI - 06-11-2013

هذا الكود يقوم بأخد القيمة في الخانة الاولي edit1 ويضربها في 0,07 ويضعها في edit 2لم يقم بفلترة tva


كيف يمكن حساب جميع قيم جدول dbgrid - makhlouf - 06-11-2013

DJILANI كتب :هذا الكود يقوم بأخد القيمة في الخانة الاولي edit1 ويضربها في 0,07 ويضعها في edit 2لم يقم بفلترة tva

السلام عليكم و رحمة الله تعالى و بركاته:
أخي ما فهمته هو أن الحقل TVA فيه قيمتان 7 أو 17 فإن كانت القيمة 7 يضرب القيمة الموجودة في الخانة 1 في 0.07 أما إن كانت القيمة 17 يضرب القيمة الموجودة في الخانة الأولى في 0.17.
جرب هذا الكود
procedure TForm16.Button1Click(Sender: TObject);

var x,y,z,a,b,c:real;
begin
z:=0;
ADOTable3.close;
ADOTable3.open;
while not ADOTable3.Eof do
begin
x:=ADOTable3.FieldByName('prix_P').Value ;
y:=ADOTable3.FieldByName('quantite').Value;
a:=ADOTable3.FieldByName('TVA').Value;
z:=z+(x*y);
EDIT1.text:=FloatToStr(z);
if (a=0.07) then
edit2.Text:=FloatToStr(z*0.07);
if (a=0.17) then
edit3.Text:=FloatToStr(z*0.17);
ADOTable3.Next;
end;
end;
بالتوفيق


كيف يمكن حساب جميع قيم جدول dbgrid - DJILANI - 06-11-2013

غيرت في الكود لكن النتيجة مازالت خاطئة
PHP كود :
var x,y,z,a,b,c:Real;
begin
z
:=0; c:=0;
ADOTable3.close;
ADOTable3.open;
while 
not ADOTable3.Eof do
begin
a
:=ADOTable3.FieldByName('T_V_A').Value  ;
b:=ADOTable3.FieldByName('total_detail').Value;
x:=ADOTable3.FieldByName('prix_P').Value  ;
y:=ADOTable3.FieldByName('quantite').Value;
z:=z+(x*y);
ADOTable3.Next;


if (
ADOTable3.FieldByName('T_V_A').Value)=7 then
begin
 c
:=c+(a*b);


end;
EDIT1.text:=FloatToStr(z);
edit2.Text:=FloatToStr(c*7)

end; 



كيف يمكن حساب جميع قيم جدول dbgrid - makhlouf - 06-11-2013

أخي تحقق من قيمة TVA و أجر العملية قبل الإنتقال إلى السجل القادم

if (ADOTable3.FieldByName('T_V_A').Value)=7 then
begin
c:=c+(a*b);


end;
EDIT1.text:=FloatToStr(z);
edit2.Text:=FloatToStr(c*7
تكون قبل
ADOTable3.Next;
جرب بالتوفيق


كيف يمكن حساب جميع قيم جدول dbgrid - S.FATEH - 06-11-2013

السلام عليكم حاول كالتالي و ردلنا الخبر
PHP كود :
ADOTable3.First;
while 
not ADOTable3.Eof do
begin
{ ضع الكود الخاص بك هنا لا تستدعي الحقل التالي نكست
 قبل ان تتم العمليات على الحقل الحالي
}

ADOTable3.Next;
end; 



كيف يمكن حساب جميع قيم جدول dbgrid - makhlouf - 07-11-2013

السلام عليكم و رحمة الله تعالى و بركاته
هذا هو المثال أتمنى ان يكون هذا ما تبحث عنه
بالتوفيق