كيف أحسب مجموع في حقل من Dbgrid
#1
السلام عليكم
اولا بوركت الجهود و بارك الله فيكم

لدي مثلا table فيها 5 اعمدة او خانات . و في العمود D اود جمع كل مافيه
للاشارة جربت عدة طرق و بحثث في المنتدى و الله يبارك ي الجميع و لكن اما النتيجة 0 او تظهر لي رسالة خطأ .
و هذا من بين ما جربت و لم ينجح معي :
PHP كود :
var i,j:integer;
sum:Real;
begin
sum
:=0;
for 
i:=0 to tweb.RecordCount do begin
for j:=0 to DBGrid3.SelectedRows.Count-1 do begin
if (i=DBGrid3.SelectedRows.IndexOf(DBGrid3.SelectedRows.Items[j])) then
sum
:=sum+tweb.FieldByName('D').AsFloat;
end;
tweb.Next;
end;

Label5.Caption:=FloatToStr(sum); 
و جزاكم الله خيرا و بوركت الجهود
الرد
#2
[INDENT]
وعليكم السلام ورحمة الله وبركاته ،
على حسب فهمي لطلبك ، تريد جمع كل عمود من dbgrid ،أليس كذلك؟
إذا كان كذلك ، فلماذا لا تستعمل SQL ؟

كود :
Select SUM(MyRecord) From My Table

[/INDENT]
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#3
أشكرك اخي جزيل الشكر . و بصراحة طلبي جمع عمود واحد فقط للتوضيح
مثلا لدي Tabledz و فيها عمود A/ B/ C/ D/ E/ F .
أود جمع عمود فقط D و الناتج في Edit .

و بارك الله فيكم على المجهودات
الرد
#4
توضيح السؤال نصف الجواب
هو انت هنا اي طريقة استخدمتها في ربط الجداول
ADO او Tabel
ايضا لو كان ADO
ماذا استخدمة
ADOTabel او ADOquery
فلكل واحده فيهم طريقه وكود معين مستقل عن الاخر ........... تحياتي .
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#5
aghroutsoft كتب :توضيح السؤال نصف الجواب
هو انت هنا اي طريقة استخدمتها في ربط الجداول
ado او tabel
ايضا لو كان ado
ماذا استخدمة
adotabel او adoquery
فلكل واحده فيهم طريقه وكود معين مستقل عن الاخر ........... تحياتي .

بارك الله فيك اخي الفاضل و جزاك الله خيرا
بما ان لكل و طريقة فمن فضلك افدنا بكلتا الطريقتين حتى استفيد اكثر و جزاك الله خيرا
و اسف اتعبتك معي
الرد
#6
يمكن عن طريق استخدام الاستعلام التالي
كود :
adodataset1.close; adodataset1.commandtext:='select sum(a+b+c+d+e) from table'; adodataset1.open; edit1.text:=adodataset.field[0].asstring;
بالتوفيق
الرد
#7
بارك الله فيك اخي و لكن ابحث عن جمع D فقط

على العموم جربت المحاولة و لم تنجح

PHP كود :
adodataset1.close;
adodataset1.commandtext:='select sum(tts) from client';
adodataset1.open;
edit1.text:=adodataset1.Fields[0].asstring; 

http://cdn.top4top.net/i_79a4ea5fc71.png
الرد
#8
السلام عليكم

PHP كود :
procedure TForm1.btnDoSumClick(Sender: TObject);
var
  
i: Integer;
  
sum : currency;
begin
  
if DBGrid1.SelectedRows.Count > 0 then
  begin
    sum 
:= 0;
    
with DBGrid1.DataSource.DataSet do
    
begin
      
for i := 0 to DBGrid1.SelectedRows.Count-1 do
      
begin
        GotoBookmark
(Pointer(DBGrid1.SelectedRows.Items[i]));
        
sum:= sum + ADOTable1.FieldByName('Montant').AsCurrency;
      
end;
    
end;
     
ADOTable2.Edit;
     
ADOTable2.FieldByName('total').AsCurrency:= sum;

  
end
end
; 


PHP كود :
procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
begin
 ADOTable1
.FieldByName('Montant').AsCurrency:=
 
ADOTable1.FieldByName('Prix').AsCurrency*
 
ADOTable1.FieldByName('Qte').AsFloat;
end;

end. 
الرد
#9
بوركتم ,, و الا يمكن تطبيق العملية بأقل كود لو سمتحم و الله يجازيكم
الرد
#10
كيف اجمع خانة B . كما في الصورة .
علما انو لدي DBgrid . و بأقل كود و شكرا لكم
http://cdn.top4top.net/i_b0fbebf38e1.png
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم