delphi4arab منتديات دلفي للعرب

نسخة كاملة : مشكلة في العمليات الحسابية في FMX
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام اخواني الكرام اعترضني مشكل اثناء البرمجة و المتمثل في عمليات الحسابية في الفاير مانكي بحيت اود حساب اجمالي الحضور و تظهر النتائج عبر مكون label7 وكذا اجمالي الغيابات و تظهر عبر مكون label8  وفق لما هو مبين في البرنامج  المرفق . وشكرا مسبقا
وعليك السلام
(04-04-2020, 12:08 PM)larbiparadox كتب : [ -> ]وعليك مشكور اخي الكريم على التفاعل و اهتمامك بالموضوع و الرد عليه لكن المشكل انك ادخلت adoqur  و بالمختصر المفيد لم افهم شيء  ممكن تبسط الامر شوي 
[صورة: 818111049.png]

* أردت تبسيط الأمر لكي تفهمه ، لم ارد الإكثار في السطور

ـ 01 ـ أضفت  ADOQuery1 و ADOQuery2  لكتابة جمل SQL لحساب المجاميع

ـ 02 ـ و ربطناها مع ADOConnection1

ـ 03 ـ كتبنا الجملة SQL بدأناها بـ select وهي إختيار الحقول المراد استدعاءها و بعدها إخترنا دالة sum لحساب مجموع الحقل الغيابات و as نعيد تسمية الحقل
         و from وهذا من الجدول nouvelle_affaire

- نفس الشيء مع ADOQuery2 في SQL مع تغيير إسم الحقل الحضور

-  في LiveBindings  ربطنا   ADOQuery1 و ADOQuery2 مع Label



[صورة: 853262370.png]

* أما لكي تظهر لنا المجاميع صحيحة في قسم الاحداث في  ADOTable1 في RecordChangeComplete عند التغيير أو إظافة حقل  يغلق ADOQuery1 و  ADOQuery2 ليعطينا المجاميع الجديدة
شكرا اخي الكريم على هذا التوضيح فانا قمت بوضع هذا الكود الذي ارفقه في المرفقات لكن المشكلة تضهر في grid2 ممكن التصحيح ان امكن حتي شتغل معايا كما ارفق لكن البرنامج
(05-04-2020, 05:48 AM)SOFIANE09 كتب : [ -> ]شكرا اخي الكريم على هذا التوضيح فانا قمت بوضع هذا الكود الذي ارفقه في المرفقات لكن المشكلة تضهر في grid2 ممكن التصحيح ان امكن حتي شتغل معايا كما ارفق لكن البرنامج

لا يحتوي FMX على DBGRID إذا لن ينجح معك هذا على عكس VCL


كود :
procedure TForm1.Button1Click(Sender: TObject); var s,e :real;   begin s:=0; e:=0; begin s:=StrToFloat(Grid2.Fields[03].Text)+s; s:=StrToFloat(Grid2.Fields[04].Text)+s; adotable1.Next; end; label7.text:=FloatToStr(s)+' الحضور    '; label8.text:=FloatToStr(e)+'  الغيابات    '; end;



إستبدله بهذا


كود :
procedure TForm1.Button1Click(Sender: TObject); var s,e :real;   begin s:=0; e:=0;     adotable1.First;     while not adotable1.Eof do     begin           if adotable1.FieldByName('الغيابات').Value <> null then s:=adotable1.FieldByName('الغيابات').AsFloat+s;           if adotable1.FieldByName('الحضور').Value <> null then e:=adotable1.FieldByName('الحضور').AsFloat+s;           adotable1.Next;     end; label7.text:=FloatToStr(e)+' الحضور    '; label8.text:=FloatToStr(s)+'  الغيابات    '; end;
شكرا اخي على المداخلة القيمة التي افادتني كثير و تحسين مستوى البرنامج الف الف شكر
(05-04-2020, 03:32 PM)SOFIANE09 كتب : [ -> ]شكرا اخي على المداخلة القيمة التي افادتني كثير و تحسين مستوى البرنامج الف الف شكر
[size=small]شكرا جدا جدا انا بصدد عمل منظومة سأحتاج الى مساعدتك عندما تواجهني مشكلة بارك الله فيك وفي امثالك[/size]