نمایش نتایج 1 تا 12 از 12

نام تاپیک: مشکل در فیلتر کردن فیلدهای عددی

  1. #1
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243

    مشکل در فیلتر کردن فیلدهای عددی

    آقا ما برای فیلتر کردن فیلد های غیر عددی از کد زیر استفاده می کنیم
    adoTable2.Filter :='Name like '+chr(39)+Edit1.Text+'%'+chr(39)
    حالا می خواهم به جای فیلد Name فیلد Sen را بگذارم
    من که گذاشتم خطا داد

    خواهشمند است این بنده را یاری نمائید

    ممنون


    یا علی

  2. #2
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    روش فبلتر کردن شما اشتباه هست :

    AdoTable1.Filter := 'Name='+quotedstr(Edit1.text);      //For string filter

    AdoTable1.Filter := 'Sen='+IntToStr(SpinEdit1.Value); //For integer filter


    AdoTable1.Filter := 'Name='+quotedstr(Edit1.text)+' And '+'Sen='+IntToStr(SpinEdit1.Value); //Use with and

  3. #3
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    یا به جای مساوی از Like استفاده کنید فقط به خاطر داشته باشید که علامت % باید در تابع quotedstr قرار بگیرید.

    موفق باشید.

  4. #4
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243
    ممنون از شما دوست عزیز

    ولی اون کدی که من نوشتم کار میکنه

    اون کد جوری می باشد که اگر بزنی ح هرچی حسن حامد حمید را برات میاره

    ولی کد شما جوری می باشد که اگر بزنی ح فقط اسم ح را میاره و حمید و حامد و حسن را نمی یاره

    ممنون از شما

    یا علی

  5. #5
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243
    ای کاش می گفتی این کدها را چه جوری مینویسی در سایت برنامه نویس که قشنگ در میاد یعنی از چب می نویسه

    مال من خیلی بد مینویسه

    میگن یه دکمه کد است ولی من هر چی می گردم پیدا نمی کنم

  6. #6
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    گفتم که به جای مساوی like بزار :

    AdoTable1.Filter := 'Name Like '+quotedstr('%'+Edit1.text+'%');      //For string filter

    AdoTable1.Filter := 'Sen Like '+'%'+IntToStr(SpinEdit1.Value)+'%'; //For integer filter


    AdoTable1.Filter := 'Name='+quotedstr(Edit1.text)+' And '+'Sen='+IntToStr(SpinEdit1.Value); //Use with and


    و برای این جوری نوشتن کد ها به لینک زیر مراجعه کنید :

    http://www.barnamenevis.org/mi...do=bbcode#code

  7. #7
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243
    آقا کار نکرد

    از اونا که بگذریم چرا این کد دیگه کار نمی کنه

    AdoTable1.Filter := 'Sen=18' ;

  8. #8
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243

    Question

    آقای مصطفی والا بلا کار نمی کنه

    اصلا این کد خودت یک بار دیگه نگاه کن


    AdoTable1.Filter := 'Sen Like '+'%'+IntToStr(SpinEdit1.Value)+'%';


    اصلا این کد صحیح نمی باشد به دلیل این متود

    SpinEdit1.Value
    آخرین ویرایش به وسیله محسن شمس : سه شنبه 10 آبان 1384 در 22:51 عصر

  9. #9
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    IQ من که تبدیل کردمش به string پس مشگل چیه.

  10. #10
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243
    دوست گرامی بهتره خودت یک بار این کد رو تو سیستمت اجرا کنی

  11. #11
    سلام
    نا جایی که من میدونم (البته اصلا مطمئن نیستم) عملگر like و کاراکتر % یا _ فقط برای فیلدهایی که از نوع کاراکتر است قابل استفاده است و برای فیلدهای از نوع int مثل سن قابل استفاده نیست. مسلما در اینجور موارد عددی هم نمی خواهیم با وارد شدن مثلا 11 فیلدهایی که سنشون 11 و 110 و 111و 112 و11111و 1100 و غیره را برگردونیم. شاید بخواهیم سن های بالاتر از مثلا 11 را باره و لی نه به این روش.
    به نظر من اینطور بنویس. تست کردم مشکلی نداشت. فقط باید چک کنی داخل edit حتما چیزی ثبت شده باشه و امکان درج کاراکتر را در edit نگذاری

    adoTable2.Filtered :=true ;
    adoTable2.Filter :='sen='+edit2.Text ;


    موفق باشی
    -------------------------------
    التماس دعا

  12. #12
    کاربر دائمی آواتار MiRHaDi
    تاریخ عضویت
    تیر 1383
    محل زندگی
    تهران - سوهانک
    پست
    982
    سلام
    filter := sen >= 10 and sen <= 19
    وقتی ادیت تغیر میکنه فیلتر هم تغیر میکنه ! متوجه شدید ؟ در مثال بالا در ادیت 1 هست و فرض شده طول متغیر شما 2 تایی است !
    بای

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •