PDA

View Full Version : سوال: مشکل در نتیجه جستجو در کاراکترهای " ا " و " آ "



iran-network
یک شنبه 03 دی 1391, 12:10 عصر
سلام به تمام اساتید این بخش من از این رنج کد واسه جستجو استفاده میکنم ولی بین آ و ا فرق میزاره .

مثلا اگه بنویسم ازاد نمیاره ولی بنویسم آزاد میاره
نکته مهم : آزاد شکل صحیح ثبت شده در جدول هست میشه راهنماییم در صورت امکان بکنید

این کد من هستش .


procedure TForm1.MaskEdit3Change(Sender: TObject);
Var
FieldName : String;
begin
FieldName := DBGrid1.Columns[ComboBox1.ItemIndex].FieldName;
ADOTable1.Filtered := False;
ADOTable1.Filter := FieldName+' Like '+QuotedStr('%'+MaskEdit3.Text+'%');
IF MaskEdit3.Text <> '' Then
ADOTable1.Filtered := True;
StaticText7.Caption := IntToStr(ADOTable1.RecordCount);
end;

یوسف زالی
یک شنبه 03 دی 1391, 15:03 عصر
سلام.
به جای استفاده از خصوصیت Filter از رویداد OnFilterRecord استفاده کنید.


Accept := Pos( StringReplace( Trim(MaskEdit3.Text), 'آ', 'ا', [rfReplaceAll]
), YourFieldValue) > 0;


البته شما باید بدونید که در دیتابیس فرق هست بین اون دو تا کاراکتر.
در این مساله فرض شده که شما همیشه به دنبال آ هستید.

iran-network
دوشنبه 04 دی 1391, 16:49 عصر
از طریق همین filter یعنی هیچ راهی نداره برای رفع این مشکل ؟ اخه یکی از دوستام از طریق همین filter نوشته ولی کار میکنه

mohsen24000
دوشنبه 04 دی 1391, 17:48 عصر
خب شما از همون راه حل پست 2 با فیلتر این کار رو انجام بدید.
اول بیایید کاراکتر "آ" رو با "ا" جایگزین کنید و سپس فیلتر...

یوسف زالی
دوشنبه 04 دی 1391, 20:37 عصر
اگه اصرار دارید کافیه یک OR بگذارید.
Filter := 'FieldCondition1 OR FieldCondition2'; // just like that

iran-network
سه شنبه 05 دی 1391, 19:20 عصر
میشه رو کد خودم کمکم کنید متوجه نشدم اخه تازه شروع کردم این تو کارگاه استادمون گفت از رو برنامه استادنوشتم بازم مرسی تا همین