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

الصفحات: 1 2


كيف يتم احصاء عدد الذكور فى dbgrid - eriktuz - 14-12-2015

السلام عليكم
اخوانى احتاج مساعدتكم فى dbgrid
انا عندى قاعدة بيانات فيها جدول خاص بمعلومات الشخص من اسم و لقب الى........ الجنس ( ذكر , انثى )
المطلوب كيف يتم احصاء عدد الذكور و يظهر العدد فى    edit1.text
بحيث عند التغيير واضافة ذكر اخر يتغير ايضا فى  edit1.text
http://store1.up-00.com/2015-12/1450117685281.png
و الله يبارك فيكم


RE: اخوانى احتاج مساعدتكم فى dbgrid - أبو معاذ - 14-12-2015

وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot From MyTable Group By Sex



RE: اخوانى احتاج مساعدتكم فى dbgrid - eriktuz - 14-12-2015

(14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot From MyTable Group By Sex
الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور

 العدد يظهر عند بداية البرنامج لكن عند اضافة ذكر جديد العدد لا يتغير فى edit  الا عند اعادة تشغيل البرنامج


RE: اخوانى احتاج مساعدتكم فى dbgrid - bassem_43 - 15-12-2015

(14-12-2015, 09:32 PM)eriktuz كتب :
(14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot From MyTable Group By Sex
الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور

 العدد يظهر عند بداية البرنامج لكن عند اضافة ذكر جديد العدد لا يتغير فى edit  الا عند اعادة تشغيل البرنامج
السلام عليكم
اغلق واعد فتح adoquery بعد الاضافة او اي تعديل هكدا
adoquery.close;
adoquery.open;
بالتوفيق


RE: اخوانى احتاج مساعدتكم فى dbgrid - أبو معاذ - 15-12-2015

السلام عليكم ،
كما قال الأخ الفاضل bassem_43  بعد الحدث AfterPost للADOTable  إغلق و افتح ال ADOQuery.


RE: اخوانى احتاج مساعدتكم فى dbgrid - eriktuz - 15-12-2015

شكرا جزيلا

الان adoquery تقوم بعمل حساب عدد الذكور و كل شىء تمام بقى المشكل فى كيفية اضهار العدد فى edit.text

استعملت datasource و dbgrid واستعملت الكود EDIT1.TEXT:=IntToStr(DBGrid3.DataSource.DataSet.RecordCount);

و كل شىء تمام

لكن اطلت الطريق بهذه الطريقة و عندما اجعل dbgrid3 مخفية فان الناتج يصبح لا يظهر فى edit و انا لا احتاج ظهور ال dbgrid فى البرنامج

يعنى هل يمكن اظهار نتائج query مباشرة فى ال edit


RE: اخوانى احتاج مساعدتكم فى dbgrid - أبو معاذ - 15-12-2015

السلام عليكم ،
هناك حلين و لك الاختيار ،
1- إذا أردت استعمال Edit  ، فالحل أن تقوم بإرفاق القيمة برمجيا ، بمعنى ، في الحدث OnADOQueryOpen  ، تكتب ما يلي :

كود :
Edit1.Text :=  ADOQuery.FieldByName('...').asString ;

2- الحل الثاني و هو ببساطة أن تستعمل  DBEdit  عوضا عن Edit  ، طبعا إذا  تحققت أن ال ADOQuery  لا ترجع إلا قيمة واحدة.
و الباقي عليك.
وفقك الله لكل خير.

فكرة ،
لماذ لا تستعمل DbGrid  آخر مربوط بال ADOQuery ؟


RE: كيف يتم احصاء عدد الذكور فى dbgrid - eriktuz - 16-12-2015

الله يبارك فيكم اخوانى على المساعدة
ساوضح اكثر انا استهمل ال adotable مع dbgrid ثم اضفت adoquery لتحسب لى عدد الذكور فقط الموجودين فى عمود الجنس الموجود فى adotable ثم يظهر الناتج كعدد فى edit او dbedit

الصورة : http://store1.up-00.com/2015-12/1450117685281.png

اظن انني اخطات فى استعمال adoquery للاستعلام لانها تلعب دور adotable قهى تحتاج الى dbgrid

هل استطيع حساب عدد الذكور الموجودين فى الجدول adotable و اظهارهم فى edit باى طريقة من غير ado query لانى اظن اننى اخطات فى استعمال adoquery فهى تلعب نفس دور adotable فهما يحتاجان الى dbgrid لاظهار النتائج

والله يبارك يكم

هذه صورة توضيحية http://store1.up-00.com/2015-12/1450282200511.png


RE: كيف يتم احصاء عدد الذكور فى dbgrid - أبو معاذ - 16-12-2015

السلام عليكم ورحمة  الله وبركاته ،
نعم يمكنك ذلك  عن طريق البرمجة ،
مجرد فكرة للتطوير :

كود :
var nb : Integer  nb := 0 ; ADOTable.First ; while Not ADOTable.EOF do Begin     if ADOTable.FieldByName('Sex').asString =  'ذكر'  then       nb := nb + 1 ; end ;



RE: كيف يتم احصاء عدد الذكور فى dbgrid - eriktuz - 16-12-2015

(16-12-2015, 07:57 PM)Unprogramme كتب : السلام عليكم ورحمة  الله وبركاته ،
نعم يمكنك ذلك  عن طريق البرمجة ،
مجرد فكرة للتطوير :

كود :
var nb : Integer  nb := 0 ; ADOTable.First ; while Not ADOTable.EOF do Begin     if ADOTable.FieldByName('Sex').asString =  'ذكر'  then       nb := nb + 1 ; end ;
الله يبارك فيك الله يحفظك و لكل من ساعدنى

الفكرة رائعة و هذا ما كنت ابحث عنه من دون استعمال ال adoquery

فقط تصحيح للكود يجب اضافة begin و end اخرى ليعمل الكود

كود :
var nb : Integer; begin   nb := 0;  ADOTable1.First;  while not ADOTable1.Eof do  begin    if  ADOTable1.FieldByName('الجنس').asString =  'ذكر'  then    nb := nb + 1;    ADOTable1.Next;   end;   eDIT1.TEXT:= IntToStr(nb); end;