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

نام تاپیک: یک سوال در مورد فیلتر نمودن

  1. #1

    یک سوال در مورد فیلتر نمودن

    با سلام
    چگونه میتوان در یک فیلد عمل فیلتر را با شرایط زیر انجام داد .
    بر اساس یک کلمه فیلتر گذاشت که امکان دارد این کلمه در اول فیلد یا وسط فیلد و یا در انتهای فیلد قرار گرفته باشد .

    با تشکر :flower:




  2. #2
    درود

    اگه شما از BDE استفاده میکنی:


    property Filter: String;

    Description

    Use Filter to specify a dataset filter. When filtering is applied to a dataset, only those records that meet a filter’s conditions are available to an application. Filter contains the string that describes the filter condition. For example, the following filter condition displays only those records where the State field is 'CA' or 'MA':

    State = 'CA' or State = 'MA'

    To filter strings bases on partial comparisons, use an asterisk as a wildcard. For example:

    State = 'M*'

    Note: Applications can set Filter at runtime to change the filtering condition for a dataset at (for example, in response to user input).


    اگر هم از ADO استفاده میکنی :


    property Filter: String;

    Description

    Use Filter to specify a dataset filter. When filtering is applied to a dataset, only those records that meet a filter’s conditions are available to an application. Filter contains the string that describes the filter condition. For example, the following filter condition displays only those records where the State field is 'CA' or 'MA':

    State = 'CA' or State = 'MA'

    When a filter is set, Blank records do not appear unless explicitly included in the filter. For example:

    State <> 'CA' or State = NULL

    When a field name contains spaces, you must enclose the field name in brackets. For example:

    [Home State] = 'CA' or [Home State] = 'MA'

    Filter expressions on remote SQL tables and on client datasets support field comparisons. For example:

    Field1 > Field2

    The FilterOptions property controls case sensitivity and filtering on partial comparisons.

    Tip: Applications can set Filter at runtime to change the filtering condition for a dataset at (for example, in response to user input).
    Note: include a space between comparison values and comparison operators in filter expressions. For instance, ensure that there is a space after the field name and before the operator.

  3. #3
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    دی 1348
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,296
    دوست عزیر از فیلتر گیری IP4000 استفاده کن کلیه مواردی را که گفتی داره و خیلی هم بیشتر فرقی هم نداره که موتور بانک اطلاعاتی شما چیه

    می تونی نسخه آزمایشی این کامپوننت را از سایت www.jonoobshop.com دریافت کنی

    :موفق:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  4. #4

    جواب

    باسلام
    دوست عزیز (m_khorsandi) از راهنمائی که به من کردید ممنون میباشم اینجانب راهنمای فیلتر نمودن Delphi را خوانده ام ولی سوال اینجانب در رابطه با فیلتر گذاشتن بر اساس کلمات داخل یک Field میباشد .

    با تشکر :flower:

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    124
    دوست عزیز
    اگر در سطح دیتا بیس باشد که خوب معلوم است کافی است اول و آخر کلمه مورد نظر از کاراکتر % استفاده کنی
    یعنی
    SELECT TOP 100 PERCENT dbo.TBL_BK_MagResived.*, PK_D_DateAnteshar AS Expr1
    FROM dbo.TBL_BK_MagResived
    WHERE (PK_D_DateAnteshar LIKE '%my word%')

    در دلفی هم بخواهی همان متن بالا را به خاصیت sql کوری اضافه کنی حله

    فقط به جای % از #39 استفاده کن

  6. #6
    دوست عزیزم، آقای سیروس مقصودی
    اگه ممکن هست یه مقدار بیشتر توضیح دهید.(من متوجه منظور شما نشدم)

  7. #7
    با سلام
    دوست عزیز m_khorsandi منظور من این است که در یک فیلد کلیه رکوردهای که در آن یک کلمه بخصوصی مثلا کلمه "محمد" وارد شده است را فیلتر نماید .
    مثلا

    محمد آمد
    از محمد پرسیدم
    صل علی محمد و آل محمد

    با تشکر :flower:

  8. #8
    با سلام

    پس کسی جوابی برای این سوال نتوانست پیدا کند ؟

    :( :( :(

  9. #9
    محمد آمد
    از محمد پرسیدم
    صل علی محمد و آل محمد

    with ADOTable1 do
    begin
    Filtered := False;
    Filter := 'field_Name LIKE ' + QuotedStr('%محمد%');
    Filtered := True;
    end;

    بجای field_name اسم فیلد خودتو بزار

  10. #10
    اینجوری می شه
    adotable1.Filter:='id like '+QuotedStr('*'+edit1.Text+'*');

  11. #11
    با سلام

    من با Table کار میکنم نه با AdoTable .
    اگر امکان دارد مرا از طریق فیلتر نمودن با Table . راهنمائی نمائید .

    با تشکر :flower: :flower: :flower:

  12. #12
    من با Table کار میکنم نه با AdoTable .
    اگر امکان دارد مرا از طریق فیلتر نمودن با Table . راهنمائی نمائید .
    دوستمون جناب m-khorsandi دادند (رجوع کنید به: پست دوم از صفحه اول).
    اگه شما از BDE استفاده میکنی:


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  13. #13
    با سلام

    من دستوری را که فرمودید نوشتم ولی در هنگام اجرا این خطا ظاهر میشود


    لطفا مرا راهنمائی فرمائید

    با تشکر :flower: :flower: :flower:

  14. #14
    من دستوری را که فرمودید نوشتم ولی در هنگام اجرا این خطا ظاهر میشود
    لطفا هر دستوری که نوشتید بزارید اینجا.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  15. #15
    با سلام

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


    Table1.Filtered := Flase
    Table1.Filter := 'Name Like '+QuotedStr('*ALI*')
    Table1.Filtered := True


    با تشکر : :flower: :flower: :flower:

  16. #16
    Table1.Filter := 'Name Like '+QuotedStr('*ALI*')
    نمی دونم چرا در BDE استفاده از * در اول کلمه جواب نمیده(!!) اما ADO با %ALI% به راحتی کار میکنه. :sorry:


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  17. #17
    با سلام
    متاسفانه با هیچ کدام از این روشها نتوانستم یک ado را فیلتر کنم
    زیرا علامت % یا * را زمانیکه به کار می برم هیچ رکوردی را نشان نمی دهد .
    مثلا :
    Form1.ADOTable1.Filter :='namf = '+QuotedStr(edit1.text+'*');
    یا
    Form1.ADOTable1.Filter :='fam = '+QuotedStr('*rezaei*');

    البته هیچ پیغام خاصی نشان نمی دهد و زمانی که فقط اسم را تنها می نویسیم فیلتر را صحیح انجام می دهد ولی زمانیکه از آن دو علامت استفاده می کنم هیچ چیزی را نشان نمی دهد . :wink:

  18. #18
    درسته ولی اگه خواستم تمام اونهایی رو که
    مثلا با 'محم' شروع نمی شوند رو چطوری می شه با Filter پیدا کرد
    همBDE هم ADO

  19. #19
    نقل قول نوشته شده توسط dr_eniak
    با سلام
    متاسفانه با هیچ کدام از این روشها نتوانستم یک ado را فیلتر کنم
    زیرا علامت % یا * را زمانیکه به کار می برم هیچ رکوردی را نشان نمی دهد .
    مثلا :
    Form1.ADOTable1.Filter :='namf = '+QuotedStr(edit1.text+'*');
    یا
    Form1.ADOTable1.Filter :='fam = '+QuotedStr('*rezaei*');

    :wink:
    توی BDEمی تونی از * استفاده کنی ولی توی ADO باید به جای ستاره از % استفاده کنی
    ولی من با این مشکل دارم

    ADODataset.Filter :='fam Not Like '+QuotedStr('%rezaei*');

  20. #20
    ولی من با این مشکل دارم

    ADODataset.Filter :='fam Not Like '+QuotedStr('%rezaei*');
    بهتره از SQL Query استفاده کنید، اما اگر اصرار به استفاده از فیلتر دارید...
    من با استفاده از خصوصیت Filter به نتیجه مورد نظر نرسیدم، اما می تونید بجای خصوصیت فیلتر، از رویداد OnFilterRecord استفاده کنید. در این حالت دستتون بیشتر بازه، برای مثال:

    procedure TForm1.ADOTable1FilterRecord(DataSet: TDataSet;
    var Accept: Boolean);
    begin
    Accept := Pos('rezaei',DataSet['ContactName']) <= 0;
    end;

    یادتون باشه که برای استفاده از رویداد OnFilterRecord باید خصوصیت Filtered = True باشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

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

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