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

نسخة كاملة : الفلترة بأكثر من قيمة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخوتي
صادفني مشكل في عمل فلترة بأستخدام ثلاث قيم يجب ان تتوافق مع بعض لتتم الفلترة
واستعملت الكود التالي لكن بدون فائدة
هل يمكن تصحيحه او انه لا يصلح بتاتا لعمل الفلترة اذ انه لا يرجع لي القيم من الجدول
كود :
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;

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

عودة لسؤالك، بما انك قلت تجاوزت مشكلتك فدعني اسالك
لديك 3 مكونات Edit
ماذا ان قام المستخدم بتعبئة واحدة او اثنين وترك الباقي فارغ
Wink
كود :
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:

أولا Begin/End مضافة دون فائدة
ثانيا انت تنبه المستخدم لكن ماذا ان كان يريد البحث بحقلين فقط
الحقل الاول والثالث
ومرة اخرى البحث باستخدام الثاني والثالث
ومرة اخرى باستخدام حقل واحد فقط
شكرا على التنبيه لكن لا تنسى اني في اول الطريق اما عن سؤالك الرائع فصحح لي ان لم اكن مصيبا
ما رأيك لو قمت بإستعمال التالي
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
على العموم فكرتك رائعة والله ولا في الاحلام اتمنى اتعلم كيف اعملها وانك تعلمني افكر
[
كود :
[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]

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