View Full Version : فيلتر داده ها در دلفي
jafar2007
دوشنبه 29 آذر 1389, 10:24 صبح
سلام
من زماني كه داده ها بر اساس يك مقدار فيلتر ميكنم (جدول )رو مشكلي ندارم اما زماني كه كه مي خواهم جستجو كنم نتايج جستجو كه مي كنم مي ياد از كل داده ها جدول مقدار مورد نشر جستجو رو مي ده ولي من ميخواهم براساس اون فيلتر اوليه از ميان اونا جواب به من بده
hossein_h62
دوشنبه 29 آذر 1389, 10:48 صبح
چجوری فیلتر میکنید و با چه کدی جستجو می کنید ؟؟!
jafar2007
سه شنبه 30 آذر 1389, 23:08 عصر
dm.ADOTable1.Filtered:=false;
maskedit1.Clear;
Edit1.Clear; Edit3.Clear;
Edit1.Clear;
Label11.Caption:='---------------------------';
Label5.Caption:='----------------------------';
Label6.Caption:='';
nom:='0';
dm.DataSource1.DataSet.Filter :='sh_peyman='+nom;
dm.DataSource1.DataSet.Filtered :=true;
dm.ADOTable1.Filtered:=true;
من اینجوری داده ها و براساس یک مقدار فیلتر میکنم
و دردیبیگرد نمایش میده ولی اگر بخواهم مثلا بر اساس یک ستون دیگه جستجو کنم که شامل شرایط بالا باشه اما نتایج جستجو همه داده هایی که کلمه جستجو رو داره پیدا میکنه و شرط اصلی رو برقرار نمیکنه
کد جستجو
dm.ADOTable1.Filtered:=true;
if Edit1.text<>'' then
dm.ADOTable1.Filter:='shomareh_darkhast='+quotedst r(Edit1.text);
لطفا کمک کنید نیاز فوری دارم
باتشکر
m_h_2007
سه شنبه 30 آذر 1389, 23:56 عصر
با توجه به شناختی که من از AdoQuery و زبان Sql دارم همه جور جستجو یا به قول شما فیلتر رو میشه به راحتی انجام داد - اساتید هستند اما اگه میشه واضح تر بگین تا توسط همون چیزی که گفتم شاید بشه حل کرد
vcldeveloper
چهارشنبه 01 دی 1389, 00:08 صبح
و دردیبیگرد نمایش میده ولی اگر بخواهم مثلا بر اساس یک ستون دیگه جستجو کنم که شامل شرایط بالا باشه اما نتایج جستجو همه داده هایی که کلمه جستجو رو داره پیدا میکنه و شرط اصلی رو برقرار نمیکنه
خب در کد دوم شما مقدار فیلتر رو تغییر دادید، یعنی مقدار فیلتر قبلی پاک شده، و مقدار جدید به اون اختصاص داده شده. پس فیلتر قبلی دیگه وجود نداره. شما اگر میخواید در یک دیتاست فیلتر شده یک رکورد بخصوص را پیدا کنید، می تونید از متد Locate استفاده کنید. اگر میخواید در یک دیتاست فیلتر شده مجددا یک فیلتر دیگه برای محدود شدن داده ها اعمال کنید، اون وقت باید شرط جدیدتان را به شرط قبلی فیلتر اضافه کنید، نه اینکه شرط قبلی رو حذف کنید، و شرط جدید رو جایگزین اون کنید.
jafar2007
چهارشنبه 01 دی 1389, 23:04 عصر
مشکل من با شرط همزمان رفع شد خیلی ممنون حالا یک سوال داشتم چه طور میشه چند تا را رکرود رو انتخاب کرد با هم و یک مقدار خاص رو به طور همرمان به اون داد مثلا 10 سطر یک دیبیگرد یا جدول رو انتخاب کنیم از 20 تا و بعد یک ستون اونها رو مقدار یکسان بدیم
با تشکر دوباره
pezhvakco
پنج شنبه 02 دی 1389, 09:13 صبح
10 سطر یک دیبیگرد یا جدول رو انتخاب کنیم از 20 تا و بعد یک ستون اونها رو مقدار یکسان بدیم
اگه منظورت ویرایش یا همون (UPDATE) کردن ستون های جدول است که می تونی کد دستور UPDATE رو با اون شرط های مورد نظرت به کار بگیری :
UPDATE Table1
SET Col1 = 1
WHERE (Col2 < 0)
اگر هم جستجو در سایت رو به کار بگیری سریعتر و راحت تر به پاسخ می رسی ...
MOJTABAATEFEH
جمعه 03 دی 1389, 20:12 عصر
با استفاده از دستور Like میتوان داده ها رو فیلتر کرد ولی تحت شبکه ترافیک رو بالا می بره وقتی برای تایپ هر کاراکتر یک دستور بازیابی ارسال بشه من جایی دیدم شبیه همین کار رو انجام میداد ولی فکر میکنم خود داده های بازیابی شده رو فیلتر میکرد و Locate هم نمیتونه باشه چون Locate رکورد جستجو شده رو به عنوان رکورد فعال در نظر میگیره و فیلتر نمیکنه با خاصیت فیلتر هم میشه یک کارهایی کرد ولی هرچی سعی کردم برای جستجوی پویا نشد کسی می دونه برای سرچ بر اساس چندتا فیلد باید چکار کرد؟ چون به صورت پویا هست و معلوم نیست کاربر چه ترکیبی از فیلدها رو برای جستجو انتخاب میکنه
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.