14-12-2008, 08:27 PM
خمس طرق للبحث عن البيانات ، و مختلف الإستعمالات مع مشاريع مرفقة ( 5/2 )
البحث باستخدام المنهج Lookup :
يعيد هذا المنهج مصفوفة من القيم لمجموعة من حقول الجدول دون أن تغير موضع السجل الحالي.
كأن تكون بصدد البحث عن الكمية مثلا الخاصة بـ السلعة المعينة ، كما يمكن أولا أو سلفا عدة حقول ، مثلا تريد قيمة حقل واحد (الكمية) الخاصة بحقل آخر (السلعة) التي تتعلق بحقل ثالث (الممون) يعني :
**** كمية المنتج المسمى تلفاز الذي اشتريته من طرف الممون أحمد .
أو العكس (حقلين مقابل واحد) يعني : تريد كمية و ممون السلعة (تلفاز) . و هكذا بدون تغيير موضع السجل الجالي . و تكون النتيجة عبارة عن Message أو في Edit .....
- لديا الحقول Code_Produit - Produit - Qut - Fournisseur .
1/
2/
القيمة المراد البحث عنها متواجدة بــ Edit حيث يحولها هذا المنهج إلى Variant ، و يعيد القيمة Null إذا لم تكن هناك نتائج. و التابع VarIsNull يستخدم لمعرفة المتغير Var إذا كان يحتوي على قيمة أو لا. التابع VarToStr لتحويل قيمة الــ Variant إلى نص .
* من أهم مزايا المنهجين Locate و Lookup أنهما يستطيعان التعامل مع حقول مفهرسة و غير مفهرسة ، ويستخدمان أيضا خوارزميات متقدمة للبحث حيث يستفيدان من الحقل إذا كان مفهرسا و يطبقان عمليات الفرز (الفلترة ) في حال كان غير مفهرس .
راجع الملف المرفق . ..../ يتبع / ....
البحث باستخدام المنهج Lookup :
يعيد هذا المنهج مصفوفة من القيم لمجموعة من حقول الجدول دون أن تغير موضع السجل الحالي.
كأن تكون بصدد البحث عن الكمية مثلا الخاصة بـ السلعة المعينة ، كما يمكن أولا أو سلفا عدة حقول ، مثلا تريد قيمة حقل واحد (الكمية) الخاصة بحقل آخر (السلعة) التي تتعلق بحقل ثالث (الممون) يعني :
**** كمية المنتج المسمى تلفاز الذي اشتريته من طرف الممون أحمد .
أو العكس (حقلين مقابل واحد) يعني : تريد كمية و ممون السلعة (تلفاز) . و هكذا بدون تغيير موضع السجل الجالي . و تكون النتيجة عبارة عن Message أو في Edit .....
- لديا الحقول Code_Produit - Produit - Qut - Fournisseur .
1/
كود :
procedure TForm1.Edit1Change(Sender: TObject);
var x: Variant;
begin
x := Table1.Lookup('Code_Produit',(edit1.Text ),'Produit; qut');
if Not VarIsnull(x) then
Showmessage( 'Produit: '+ vartostr(x[0]) + ' / ' + 'Qut: ' + vartostr(x[1] ) );
end;2/
كود :
procedure TForm1.Button1Click(Sender: TObject);
var x: Variant;
begin
x:=Table1.Lookup('Produit;Fournisseur_Produit',VarArrayof([edit2.Text,Edit3.text]),
'code_Produit;Qut');
if Not VarIsnull(x) then
edit4.text:=(vartostr(x[0])+' / ' + vartostr(x[1] ) );
end;القيمة المراد البحث عنها متواجدة بــ Edit حيث يحولها هذا المنهج إلى Variant ، و يعيد القيمة Null إذا لم تكن هناك نتائج. و التابع VarIsNull يستخدم لمعرفة المتغير Var إذا كان يحتوي على قيمة أو لا. التابع VarToStr لتحويل قيمة الــ Variant إلى نص .
* من أهم مزايا المنهجين Locate و Lookup أنهما يستطيعان التعامل مع حقول مفهرسة و غير مفهرسة ، ويستخدمان أيضا خوارزميات متقدمة للبحث حيث يستفيدان من الحقل إذا كان مفهرسا و يطبقان عمليات الفرز (الفلترة ) في حال كان غير مفهرس .
راجع الملف المرفق . ..../ يتبع / ....


![[-]](https://delphi4arab.net/forum/D4A2020/collapse.png)