ماهي طريقة التصفية باستعمال DBloockupbox
#1
Question 
السلام عليكم أحبتي


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

برنامج 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;
الرد
#2
وعليكم السلام
مع أي مكون/جذول تم ربط DBloockupbox ؟
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#3
(26-01-2016, 04:56 AM)B.M.AbdelAziZ كتب : وعليكم السلام
مع أي مكون/جذول تم ربط DBloockupbox ؟

أهلا أخي

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


الرد
#4
مرحبا اخي فهمت انك تريد التصفة في جدول المراكز و تضهر لك النتائج على dblookupcombobox الامر عادي باستخدام الفلترة العادية ضع edit و اكتب فيها كود الفلتر المعروف ثم سيبحث مباشرة في الجدول و تضهر النتائج التي تريدها . عن تجربة خاصة
هذا ما فهمته من السؤال
الرد
#5
سلام عليكم
شاهد المثال المرفق

.rar   !.rar (الحجم : 96.31 ك ب / التحميلات : 66)
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
الرد
#6
ان كانت هناك علاقة بين الجدولين كما قلت فلا تحتاج اي برمجة، بمجرد اخيار الاب هنا المركز تتم فلترة الابناء اي الموظفبن
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#7
شكرا لكم احبابي
أنا أقصد عرض في 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; تم عرض خصائص الجدول فقط بدون اسماء مع ان جدول الموظفين به بيانات
الرد
#8
(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;
الرد
#9
اها اخي استخدم الكومبوبوكس combobox لانه يمكن الفلترة باستخدام خاصية text الموجودة فيها و لاحضار اسماء المراكز للكومبوبوكس استخدم
while not(table.eof) then begin
combobox.items.add(tablename.asstring);
table.next
end
الرد
#10
جرب ما يلي مع تغيير 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 ) ضيف كريم