PDA

View Full Version : روشی برای جستجوی فیلد از نوع Lookup



SYNDROME
جمعه 21 اردیبهشت 1386, 16:56 عصر
با سلام
روشی که در زیر توضیح می دهم برای جستجو بر روی فیلدهای LookUpکارایی دارد(قبلا در سایت سوال شده ولی جوابی داده نشده است.)

کامیونت Edit را بر روی صفحه گذاشته و نام آن را Edit1 بگذارید.
کامپونت ADOQuery را در صفح قرار داده و نام آن را ADOQuery1 بگذارید.(تنظیمات ADOConection را خودتان انجام دهید و ADOQueryرا به ADOConectionوصل کنید)
فیلدها را به ADOQuery1اضافه کنید و سپس فیلد Lookup خود را ایجاد کنید.(من نام فیلد Lookup خود را ASگذاشتم)
کد زیر را در OnChange مربوط به Edit1 بنویسید.

procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOQuery1.Filtered:=True;
ADOQuery1.Close;
ADOQuery1.Open;
end;

5-تابع زیر را در برنامه بنویسید.


Function TForm1.Search(const AText, ASubText: string) : Boolean;
Begin
Search := AnsiPos(AnsiUppercase(AText), AnsiUppercase(ASubText)) > 0;
end;

6. در OnFilterRecord مربوط به ADOQuery1 کد زیر را بنویسید.


if Edit1.Text='' then
begin
Accept:=True;
Exit;
end;
Accept := Search(ADOQuery1.FieldByName('as').AsString, Edit1.Text)


حالا برنامه را اجرا کنید.:لبخند:
اگر مشکلی بود در خدمت هستم.:لبخندساده:

Silent Ninja
شنبه 30 شهریور 1387, 11:34 صبح
برای فیلدهای Calculate راهی نیست ؟