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

نسخة كاملة : اظهار عدد السجلات في الديبي قريد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
kachwahed كتب :
PHP كود :
property RowCount: Longint read FRowCount write SetRowCount default 5; 

بالرغم من ان هذه الخاصية قابلة للقراءة و الكتابة الى انه لا يمكن الاستفادة من الكتابة دون تغييرات اخرى(التى لا اعلم ما هى Smile) ... على عكس القراءة .

المكون DBGrid مكون متشعب جدا . :monster2:
ماشاء الله عليكم اخواني
kachwahed & hanipino فعلا حل متميز
بارك الله فيكم
وفي انتظار المشروع الجديد Big Grin

لكن اخي kachwahed هنالك مشكله اذا لم يكن هناك اي سجل بالdbgrid يظهر ان هناك سجل واحد ومن المفروض ان يظهر صفر.

سلام عليكم

من جديد اخي kachwahed هنالك مشكله وهي انه يظهر السجلات الظاهره للعيان فقط اي اذا كان حجم ال dbgrid صغير نسبيا ويسمح بعرض 15 سجل وكان عدد السجلات بال dbgrid تساوي 20 فانه يظهر ان عدد السجلات 15 اي هذه هي المرئيه وعند تكبير حجم ال dbgrid يزيد عدد العناصر علي حسب حجم القريد فقط
**** ان اكون وضحت المشكله
إقتباس :لكن المشكله ان الحل الموجود في الاعلي يعيد عدد السجلات الموجوده في الجدول باكمله وليس فقط التي تظهر في dbgrid في بعض الاحيان اقوم بعمل فلتره لمجموعه معينه واظهرها علي القريد
لم أفهم ما أردت فعله بالتحديد، إذ كل البيانات المخزنة في DataSet تظهر في TDBGrid المرتبطة به
أيضا الـ Filter يحدث على مستوى DataSet وبالتالي عدد السجلات RecordCount لـ DataSet يتغير حسب الـ Filter
عموما، جرب هذه أيضا:
PHP كود :
ShowMessage(IntToStr(ADOTable1.Recordset.RecordCount)); 
إذا لم يحقق المطلوب فحاول التوضيح بمثال.
بالتوفيق.
بسم الله الرحمن الرحيم

اليك اخي kachwahed المثال التالي وبه عيوب كل كريقه من الاثنين
RecCount تؤدي المطلوب أخي الكريم، علينا فقط الانتباه في الـ Filter...
بداية كان هناك خطأ في موضع الـ Filter لاحظ:
كود :
procedure TForm1.Edit2Change(Sender: TObject); begin [color=Red]ADOQuery1.SQL.Text:='select * from n1 where na like"'+Edit2.Text+'%"[/color];'; DBGrid1.DataSource:=DataSource2; //taSource2.DataSet:=ADOTable1; ADOQuery1.Open; //Label28.Caption:='عدد النتائج المعروضة : '+IntToStr(MyDBGrid(DBGrid1).RowCount-1); Label14.Caption:='عدد النتائج المعروضة : '+IntToStr([color=Red]ADOTable1.Recordset.RecordCount[/color]); Label13.Caption:='عدد النتائج المعروضة : '+IntToStr(MyDBGrid(DBGrid1).RowCount-1); end;
أي وضعت Filter في ADOQuery وحاولت عرض عدد السجلات من ADOTable ! طبعا ستكون النتيجة خاطئة.
أيضا هناك طريقتين لعمل Filter إما باستخدام خاصية Filter أو بإعادة الاستعلام، هذه الأخيرة مفضلة عند العمل على الشبكات، حيث قم يتم إضافة سجلات أثناء الـ Filter.
أعددت الطريقتين في المرفقات. بالتوفيق.
لا ادري ماذا اقول لكن ساقول لك وفقك الله ورحم والديك
وبارك الله فيك
الصفحات : 1 2