مشكلة في العمليات الحسابية في FMX
#1
السلام اخواني الكرام اعترضني مشكل اثناء البرمجة و المتمثل في عمليات الحسابية في الفاير مانكي بحيت اود حساب اجمالي الحضور و تظهر النتائج عبر مكون label7 وكذا اجمالي الغيابات و تظهر عبر مكون label8  وفق لما هو مبين في البرنامج  المرفق . وشكرا مسبقا


الملفات المرفقة
.rar   essyer.rar (الحجم : 97.23 ك ب / التحميلات : 5)
الرد
#2
وعليك السلام


الملفات المرفقة
.rar   essyer2.rar (الحجم : 88.52 ك ب / التحميلات : 16)
الرد
#3
(04-04-2020, 12:08 PM)larbiparadox كتب : وعليك مشكور اخي الكريم على التفاعل و اهتمامك بالموضوع و الرد عليه لكن المشكل انك ادخلت adoqur  و بالمختصر المفيد لم افهم شيء  ممكن تبسط الامر شوي 
الرد
#4
الموضوع بالتفصيل
http://delphi4arab.net/forum/showthread.php?tid=10737
الرد
#5
[صورة: 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 ليعطينا المجاميع الجديدة
[-] كل من 1 user says قال شكرا ل larbiparadox على المشاركة المفيدة
  • SOFIANE09
الرد
#6
شكرا اخي الكريم على هذا التوضيح فانا قمت بوضع هذا الكود الذي ارفقه في المرفقات لكن المشكلة تضهر في grid2 ممكن التصحيح ان امكن حتي شتغل معايا كما ارفق لكن البرنامج


الملفات المرفقة
.jpg   Sans titre.jpg (الحجم : 321.38 ك ب / التحميلات : 11)
.rar   essyer.rar (الحجم : 74.78 ك ب / التحميلات : 10)
الرد
#7
(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;
الرد
#8
شكرا اخي على المداخلة القيمة التي افادتني كثير و تحسين مستوى البرنامج الف الف شكر
الرد
#9
(05-04-2020, 03:32 PM)SOFIANE09 كتب : شكرا اخي على المداخلة القيمة التي افادتني كثير و تحسين مستوى البرنامج الف الف شكر
[size=small]شكرا جدا جدا انا بصدد عمل منظومة سأحتاج الى مساعدتك عندما تواجهني مشكلة بارك الله فيك وفي امثالك[/size]
الرد


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


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