delphi4arab منتديات دلفي للعرب
الفلترة بأكثر من قيمة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : الفلترة بأكثر من قيمة (/showthread.php?tid=1595)



الفلترة بأكثر من قيمة - yahia1921 - 31-01-2010

السلام عليكم اخوتي
صادفني مشكل في عمل فلترة بأستخدام ثلاث قيم يجب ان تتوافق مع بعض لتتم الفلترة
واستعملت الكود التالي لكن بدون فائدة
هل يمكن تصحيحه او انه لا يصلح بتاتا لعمل الفلترة اذ انه لا يرجع لي القيم من الجدول
كود :
var S,F,D:string; begin D:=maskedit1.Text; F:=maskedit2.Text; S:=maskedit3.Text; adodataset1.filter:='num-mag ='''+d+'''and num-emp='''+F+'''and dat-tra='''+s+''''; adodataset1.filtered:=True; adodataset1.First; end;



الفلترة بأكثر من قيمة - محمد عبد العزيز - 01-02-2010


وعليكم السلام
ما المشكل ؟ او ما الخطا ؟



الفلترة بأكثر من قيمة - yahia1921 - 01-02-2010

اهلا بك اخي عبد العزيز هو كان المشكل في اظهار نتيجة واحدة فقط وقد تم تجاوزه بحمد الله
كل يوم نتعلم الجديد
لكن ان سمحتلي لدي سؤال لك هل يمكنني القيام بعملية الطرح في الريف ريبورت بين قيمتين تعلمت الجمع و العد لكن احب ان اعرف اكثر عن الريف ريبورت من تعديلات مثل طريقة الطباعة عرصية او طولية ولك من جزيل الشكر
:cryss:
:monster1:


الفلترة بأكثر من قيمة - محمد عبد العزيز - 01-02-2010

بالنسبة لRave Report لست من مستعمليه ولا اظن ان الطرح غير ممكن
اما الكطابعة العرضية والطولية كما سميتها فهي من خصائص التقرير

عودة لسؤالك، بما انك قلت تجاوزت مشكلتك فدعني اسالك
لديك 3 مكونات Edit
ماذا ان قام المستخدم بتعبئة واحدة او اثنين وترك الباقي فارغ
Wink


الفلترة بأكثر من قيمة - yahia1921 - 01-02-2010

كود :
var S,F,D:string; begin D:=maskedit1.Text; F:=maskedit2.Text; S:=maskedit3.Text; [COLOR="Red"]begin if maskedit1.text='' then showmessage('dont let num-mag empty'); if maskedit2.text='' then showmessage('dont let num-emp empty'); if maskedit3.text='' then showmessage('dont let dat-tra empty');[/COLOR] adodataset1.filter:='num-mag ='''+d+'''and num-emp='''+F+'''and dat-tra='''+s+''''; adodataset1.filtered:=True; adodataset1.First; end; end; end;
[/QUOTE]

تجاوز عني خطأي ان ارتكبت خطأ جسيما مازلت في اول الطريق و محتاج للتوجيه:monster1:


الفلترة بأكثر من قيمة - محمد عبد العزيز - 01-02-2010


أولا Begin/End مضافة دون فائدة
ثانيا انت تنبه المستخدم لكن ماذا ان كان يريد البحث بحقلين فقط
الحقل الاول والثالث
ومرة اخرى البحث باستخدام الثاني والثالث
ومرة اخرى باستخدام حقل واحد فقط



الفلترة بأكثر من قيمة - yahia1921 - 01-02-2010

شكرا على التنبيه لكن لا تنسى اني في اول الطريق اما عن سؤالك الرائع فصحح لي ان لم اكن مصيبا
ما رأيك لو قمت بإستعمال التالي
1/ checkbox
2/ زر speedbutton
3/ ثلاثة من maskedit
واكرر الكود التالي في كل حالة
كود :
[COLOR="Red"]begin if checkbox1.checked=true then begin maskedit1.text:=''; maskedit1.Visible:=false; end else if checkbox1.checked=false then if maskedit1.text='' then [color=DeepSkyBlue] maskedit1.Visible:=true;[/color] showmessage('write num-mag'); [/COLOR]
قمت بإدراج
maskedit1.Visible:=true;
في حالة ما اذا تحولت قيمة checkbox الى الfalse بعدما كانت true
على العموم فكرتك رائعة والله ولا في الاحلام اتمنى اتعلم كيف اعملها وانك تعلمني افكر


الفلترة بأكثر من قيمة - yahia1921 - 01-02-2010

[
كود :
[COLOR="Red"]begin if checkbox1.checked=true then begin maskedit1.text:=''; maskedit1.Visible:=false; end else if checkbox1.checked=false then begin if maskedit1.text='' then [color=DeepSkyBlue] maskedit1.Visible:=true;[/color] showmessage('write num-mag'); end; adodataset1.filter:='num-mag ='''+d+'''and num-emp='''+F+'''and dat-tra='''+s+''''; adodataset1.filtered:=True; adodataset1.First; end; end; end; [/COLOR]
قمت بإدراج
maskedit1.Visible:=true;
في حالة ما اذا تحولت قيمة checkbox الى الfalse بعدما كانت true
على العموم فكرتك رائعة والله ولا في الاحلام اتمنى اتعلم كيف اعملها وانك تعلمني افكر[/QUOTE]


الفلترة بأكثر من قيمة - محمد عبد العزيز - 06-02-2010


لما اضفت checkbox ؟
سهل الامور على المستخدم ولا تعقدها على نفسك
لديك ثلاث ُEdit لفلترة ثلاث حقول
ان كانت Edit غير فارغة استخدمها في الفلترة
ان كانت كلها فارغة لا يوجد فلترة
حاول التطبيق