![]() |
|
كيف يتم احصاء عدد الذكور فى 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 SexRE: اخوانى احتاج مساعدتكم فى dbgrid - eriktuz - 14-12-2015 (14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور العدد يظهر عند بداية البرنامج لكن عند اضافة ذكر جديد العدد لا يتغير فى edit الا عند اعادة تشغيل البرنامج RE: اخوانى احتاج مساعدتكم فى dbgrid - bassem_43 - 15-12-2015 (14-12-2015, 09:32 PM)eriktuz كتب :السلام عليكم(14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور اغلق واعد فتح 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 كتب : السلام عليكم ورحمة الله وبركاته ،الله يبارك فيك الله يحفظك و لكل من ساعدنى الفكرة رائعة و هذا ما كنت ابحث عنه من دون استعمال ال 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; |