delphi4arab منتديات دلفي للعرب
الفرز والفلترة بحقلين - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13)
+--- الموضوع : الفرز والفلترة بحقلين (/showthread.php?tid=2900)



الفرز والفلترة بحقلين - وليد - 17-03-2011

السلام عليكم
بسم الله الرحمان الرحيم
لا شك أن البحث والفلترة أو الفرز لإيجاد واستخراج معلومات من قاعدة البيانات أمر مهم بل هو من أهم أمور البرمجة في مجال قواعد البيانات وقد مررت بتجربة البحث عن أكواد البحث في قاعدة البيانات وكذلك البحث عن أكواد الفرز والفلترة في قاعدة البيانات مررت بتجربة من خلال البحث عن هذه الأكواد في كثير من المواقع والمنتديات وكذلك سؤال بعض أهل الإختصاص في غير المواقع والمنتديات وعانيت كثيرا حتى حصلت على المقصود وجدت ما يفي بالغرض في مجال البحث والفلترة وهذا هو طريق طلب العلم الديني أو الدنيوي لا بد من بحث وعناء ، ولذلك أحببت أن أضع هنا مثالا على الفرز والفلترة بحقلين ولكوني مبتدئ ومنشغل بتعلم أشياء أخرى في مجال البرمجة وانشغالاتالدنيا وضيق الوقت لم أقدر على تطوير الكود لكي يصبح قابلا للفلترة أو الفرز بأكثر من حقلين لذلك أرجــوا من الإخوة ممن له باع في البرمجة وفهم دقيق أن يقدم على تطوير هذه العملية لأنها كما قلت من أهم أمور البرمجة في مجال قواعد البيانات والمثال في المرفقات وهذه تنبيهات:
1- الكود يكتب في حدث onChange لـ edit1 .
كود :
procedure TForm3.Edit1Change(Sender: TObject); var nom, prenom:string; begin ADOTable1.Filter := ''; if (Edit1.Text + edit2.Text) = '' then exit; try nom := QuotedStr (Edit1.Text + '*'); prenom := QuotedStr (edit2.Text + '*'); if (Edit1.Text <> '') AND (edit2.Text <> '') then ADOTable1.Filter:= Format('(nom LIKE %s) and (prenom LIKE %s)', [nom, prenom]) else if (Edit1.Text <> '') then ADOTable1.Filter:= Format('(nom LIKE %s)', [nom]) else ADOTable1.Filter:= Format('(prenom LIKE %s)', [prenom]); ADOTable1.Filtered := Trim((Edit1.Text + edit2.Text)) <> ''; except abort; end; end;
2- في الحدث onEnter لـ edit2 تكتب الكود :
كود :
procedure TForm3.Edit2Enter(Sender: TObject); begin Edit2.OnChange:=edit1.OnChange; end;
وهذا حتى لا تكرر كتابة الكود الأول .
علما أنا قاعدة البيانات المستعملة في المثال هي أكسس والدلفي 2010.
والمثال في المرفقات.
وفق الله الجميع


الفرز والفلترة بحقلين - whitewolf153 - 09-05-2014

شكرا لك اخي الحبيب


الفرز والفلترة بحقلين - dliouahb - 07-07-2014

بارك الله فيك


RE: الفرز والفلترة بحقلين - Khaledkouka - 07-03-2016

شكرا على مجهوداتك