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

نسخة كاملة : ماهي طريقة التصفية باستعمال DBloockupbox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم أحبتي


من يستطيع أن يمخمخ معي في هته المشكلة 

برنامج delphi  وقاعدة معطياتsqlserver


[صورة: 981626cbadcf1.jpg]

لدي جدولين المركز  ، الموظف

اريد تصفية أسماء الموظفين حسب اسم المركز
أي عندما أختار أسم مركز في   DBloockupbox     يتم عرض أسماء الموظفين التابعين للمركز المحدد        
مع العلم الجدولين مربوطين برمز المركز
  
ماهي طريقة التصفية الصحيحة



هدة محاولتي
كود :
procedure TForm5.DBLookupComboBox1Click(Sender: TObject); var  ch, code: string; begin      ch:='select * from centr where nomcentr ='+Quotedstr(DBLookupComboBox1.Text);      ADOQuery1.Close;      ADOQuery1.SQL.Clear;      ADOQuery1.SQL.Add(ch);      ADOQuery1.Open;      code:=ADOQuery1.Fieldbyname('codcentr').Value;      ch:='select * from fonctionnaire where codcentr ='+Quotedstr(code);      ADOQuery2.Close;      ADOQuery2.SQL.Clear;      ADOQuery2.SQL.Add(ch);      ADOQuery2.Open; end;
وعليكم السلام
مع أي مكون/جذول تم ربط DBloockupbox ؟
(26-01-2016, 04:56 AM)B.M.AbdelAziZ كتب : [ -> ]وعليكم السلام
مع أي مكون/جذول تم ربط DBloockupbox ؟

أهلا أخي

 DBloockupbox   تم ربطه من جدول مركز   ليستخرج أسماء المراكز   


مرحبا اخي فهمت انك تريد التصفة في جدول المراكز و تضهر لك النتائج على dblookupcombobox الامر عادي باستخدام الفلترة العادية ضع edit و اكتب فيها كود الفلتر المعروف ثم سيبحث مباشرة في الجدول و تضهر النتائج التي تريدها . عن تجربة خاصة
هذا ما فهمته من السؤال
سلام عليكم
شاهد المثال المرفق
[attachment=3133]
ان كانت هناك علاقة بين الجدولين كما قلت فلا تحتاج اي برمجة، بمجرد اخيار الاب هنا المركز تتم فلترة الابناء اي الموظفبن
شكرا لكم احبابي
أنا أقصد عرض في Dbgrid إسماء الموظفين   الذين ينتمون الى المركز الذي أحدده منDBLookupComboBox1   فقط  
في الصورة   =  مثال  عندما أحدد مركز  Sof     يعرض الموظفين المنتمين للمركز فقط
مع العلم أن جدول الموظفين مربوط مع جدول المركز برمز المركز وليس باسم المركز
[صورة: 26_01_1614538414759251.jpg]

 محاولتي الاخيرة  نتيجتها في الصورة

كود :
procedure TForm5.DBLookupComboBox1Click(Sender: TObject); var  ch, id: string; begin      ch:='select nom,prenom from fonctionnaire where codcentr ='+Quotedstr(id);      ADOQuery1.Close;      ADOQuery1.SQL.Clear;      ADOQuery1.SQL.Add(ch);      ADOQuery1.Open;      end; تم عرض خصائص الجدول فقط بدون اسماء مع ان جدول الموظفين به بيانات
(26-01-2016, 08:08 PM)B.M.AbdelAziZ كتب : [ -> ]ان كانت هناك علاقة بين الجدولين كما قلت فلا تحتاج اي برمجة، بمجرد اخيار الاب هنا المركز تتم فلترة الابناء اي الموظفبن
       أخي هناك علاقة بين الجدولين عن طريق كود المركز  كما في الصورة = 102

      عند اختياري اسم المركز  ECOLE2      لم أستطع عرض اسماء الموظفين التابعين للمركز 102  تم عرض خصائص الجدول فقط Huh
[صورة: 145392386764551.jpg]
كود :
procedure TForm5.DBLookupComboBox1Click(Sender: TObject); var  ch, id: string; begin      ch:='select nom,prenom from fonctionnaire  where codcentr ='+Quotedstr(DBEdit1.Text);      ADOQuery1.Close;      ADOQuery1.SQL.Clear;      ADOQuery1.SQL.Add(ch);      ADOQuery1.Open;      end;
اها اخي استخدم الكومبوبوكس combobox لانه يمكن الفلترة باستخدام خاصية text الموجودة فيها و لاحضار اسماء المراكز للكومبوبوكس استخدم
while not(table.eof) then begin
combobox.items.add(tablename.asstring);
table.next
end
جرب ما يلي مع تغيير Table1 بإسم الجدول أو Query الذي ربطته مع المكون DBLookupComboBox1
كود :
procedure TForm5.DBLookupComboBox1Click(Sender: TObject); Var  ch, id: string; begin  id:=Table1.Fieldbyname('codcentr').AsString;  ch:='select nom,prenom from fonctionnaire  where codcentr ='+Quotedstr(id);  ADOQuery1.Close;  ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Add(ch);  ADOQuery1.Open; End;
الصفحات : 1 2