delphi4arab منتديات دلفي للعرب
كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - نسخة قابلة للطباعة

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

الصفحات: 1 2


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

السلام عليكم

لدي جدول PERS به عدة اسماء في حقل اسمه NOM
فكيف يتم فلترة الجدول اعتمادا على اسماء موجودة في checklistbox

نفرض ان لديك 100 موظف و المطلوب فلترة الجدول لعرض اسماء محددة يتم اختيارها من checklistbox

انا استعمل ADOQuery2

ممكن تعديل الكود
ADOQuery2.Close;
ADOQuery2.Parameters.ParamByName('QN').Value:=;
ADOQuery2.Open;


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

مثال توضيحي
لقد تم اختيار
AAAA
CCCC
EEEE
من checklistbox و على اساسه تم فلترة الجدول

كود :
http://im12.gulfup.com/2012-06-05/1338900783251.jpg



كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - hanipino - 05-06-2012

جرب الاجراء التالى

PHP كود :
function Filter(FieldName: string; chklst: TCheckListBox): string;
var
  
i: Integer;
  
s: string;
begin
  FieldName 
:= FieldName + ' = ';
  for 
I := 0 to chklst.Items.Count -1 do
  
begin
    
if chklst.Checked[i] then
    begin
      s 
:= FieldName + QuotedStr(chklst.Items[i]) + ' or ';
      
Result := Result + s;
    
end;
  
end;
  
SetLength(Result, Length(Result) - 4);
end; 

PHP كود :
TABLE.Filter := Filter('NOM', chklst1);
 
TABLE.Filtered := True; 



كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

أخي ممكن تشرح كيف استخدم الكود و تستعمل الاسماء التي استعملها
checklistbox1
انا لا ستعمل الجدول بل ADOQuery2

لقد استبدلت chklst ب checklistbox1
TABLE ب ADOQuery2
ولم ينجح الأمر


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

اخي نجح الأمر باستعمل ADOTable1
ممكن استبدال ADOQuery2


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

نحج الأمر مع ADOQuery2

لكن عندما يكون SQL

select * from Table1
لكن انا عندي هكدا
select * from Table1
Where Table1 MOI=:QMOI
AND Table1 .AGN=:QANG
AND Table1 .N=:QN

و ربما شروط اخرى
وفي الزر استعمل
ADOQuery1.Close;
ADOQuery2.Parameters.ParamByName('QN').Value:=TCAT['NG'];
ADOQuery2.Parameters.ParamByName('QMOI').Value:=TMOI['NMOIS'];
ADOQuery2.Parameters.ParamByName('QANG').Value:=COMANG.Text;
ADOQuery1.Open;


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 05-06-2012

نجح الأمر شكرا للجميع


كيف يتم الاستعلام ADOQuery1 بواسطة CheckListBox1 - bouazza8 - 06-06-2012

السلام عليكم اسف على الازعاج
لكن واجهتني مشكلة لم تكن في الحسبان
لدي في الجدول السابق حقل مفتاح و هو رقم الموظف و حقل اسم الموظف
استعملت طريقة الاخ hanipino

لكن يتم الفلترة على اساس الاسم فادا كان شخصان لهما نفس الاسم فانه ادا اخترت احدهما فيتم الفلترة و عرضهما معا
لدى يجب الفلترة على اساس رقم الموظف و هو المفتاح
ولكن بهده الطريقة لايمكن معرفة اسم الموظف
لدى هل توجد طريقة لعرض رقم و اسم الموظف في checklistbox و الفلترة على اساس رقم الموظف