با سلام
چگونه میتوان در یک فیلد عمل فیلتر را با شرایط زیر انجام داد .
بر اساس یک کلمه فیلتر گذاشت که امکان دارد این کلمه در اول فیلد یا وسط فیلد و یا در انتهای فیلد قرار گرفته باشد .
با تشکر :flower:
با سلام
چگونه میتوان در یک فیلد عمل فیلتر را با شرایط زیر انجام داد .
بر اساس یک کلمه فیلتر گذاشت که امکان دارد این کلمه در اول فیلد یا وسط فیلد و یا در انتهای فیلد قرار گرفته باشد .
با تشکر :flower:
درود
اگه شما از 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.
دوست عزیر از فیلتر گیری IP4000 استفاده کن کلیه مواردی را که گفتی داره و خیلی هم بیشتر فرقی هم نداره که موتور بانک اطلاعاتی شما چیه
می تونی نسخه آزمایشی این کامپوننت را از سایت www.jonoobshop.com دریافت کنی
:موفق:
پس از دو سال بررسی بلاخره به بازار آمد
متفاوت و هوشمندانه
باسلام
دوست عزیز (m_khorsandi) از راهنمائی که به من کردید ممنون میباشم اینجانب راهنمای فیلتر نمودن Delphi را خوانده ام ولی سوال اینجانب در رابطه با فیلتر گذاشتن بر اساس کلمات داخل یک Field میباشد .
با تشکر :flower:
دوست عزیز
اگر در سطح دیتا بیس باشد که خوب معلوم است کافی است اول و آخر کلمه مورد نظر از کاراکتر % استفاده کنی
یعنی
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 استفاده کن
دوست عزیزم، آقای سیروس مقصودی
اگه ممکن هست یه مقدار بیشتر توضیح دهید.(من متوجه منظور شما نشدم)
با سلام
دوست عزیز m_khorsandi منظور من این است که در یک فیلد کلیه رکوردهای که در آن یک کلمه بخصوصی مثلا کلمه "محمد" وارد شده است را فیلتر نماید .
مثلا
محمد آمد
از محمد پرسیدم
صل علی محمد و آل محمد
با تشکر :flower:
با سلام
پس کسی جوابی برای این سوال نتوانست پیدا کند ؟
:( :( :(
محمد آمد
از محمد پرسیدم
صل علی محمد و آل محمد
with ADOTable1 do
begin
Filtered := False;
Filter := 'field_Name LIKE ' + QuotedStr('%محمد%');
Filtered := True;
end;
بجای field_name اسم فیلد خودتو بزار
اینجوری می شه
adotable1.Filter:='id like '+QuotedStr('*'+edit1.Text+'*');
با سلام
من با Table کار میکنم نه با AdoTable .
اگر امکان دارد مرا از طریق فیلتر نمودن با Table . راهنمائی نمائید .
با تشکر :flower: :flower: :flower:
دوستمون جناب m-khorsandi دادند (رجوع کنید به: پست دوم از صفحه اول).من با Table کار میکنم نه با AdoTable .
اگر امکان دارد مرا از طریق فیلتر نمودن با Table . راهنمائی نمائید .
اگه شما از BDE استفاده میکنی:
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
با سلام
من دستوری را که فرمودید نوشتم ولی در هنگام اجرا این خطا ظاهر میشود
لطفا مرا راهنمائی فرمائید
با تشکر :flower: :flower: :flower:
لطفا هر دستوری که نوشتید بزارید اینجا.من دستوری را که فرمودید نوشتم ولی در هنگام اجرا این خطا ظاهر میشود
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
با سلام
جناب آقای کشاورز دستوری که نوشتم بدین شکل میباشد .
Table1.Filtered := Flase
Table1.Filter := 'Name Like '+QuotedStr('*ALI*')
Table1.Filtered := True
با تشکر : :flower: :flower: :flower:
نمی دونم چرا در BDE استفاده از * در اول کلمه جواب نمیده(!!) اما ADO با %ALI% به راحتی کار میکنه. :sorry:Table1.Filter := 'Name Like '+QuotedStr('*ALI*')
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
با سلام
متاسفانه با هیچ کدام از این روشها نتوانستم یک ado را فیلتر کنم
زیرا علامت % یا * را زمانیکه به کار می برم هیچ رکوردی را نشان نمی دهد .
مثلا :
Form1.ADOTable1.Filter :='namf = '+QuotedStr(edit1.text+'*');
یا
Form1.ADOTable1.Filter :='fam = '+QuotedStr('*rezaei*');
البته هیچ پیغام خاصی نشان نمی دهد و زمانی که فقط اسم را تنها می نویسیم فیلتر را صحیح انجام می دهد ولی زمانیکه از آن دو علامت استفاده می کنم هیچ چیزی را نشان نمی دهد . :wink:
درسته ولی اگه خواستم تمام اونهایی رو که
مثلا با 'محم' شروع نمی شوند رو چطوری می شه با Filter پیدا کرد
همBDE هم ADO
توی BDEمی تونی از * استفاده کنی ولی توی ADO باید به جای ستاره از % استفاده کنینوشته شده توسط dr_eniak
ولی من با این مشکل دارم
ADODataset.Filter :='fam Not Like '+QuotedStr('%rezaei*');
بهتره از SQL Query استفاده کنید، اما اگر اصرار به استفاده از فیلتر دارید...ولی من با این مشکل دارم
ADODataset.Filter :='fam Not Like '+QuotedStr('%rezaei*');
من با استفاده از خصوصیت Filter به نتیجه مورد نظر نرسیدم، اما می تونید بجای خصوصیت فیلتر، از رویداد OnFilterRecord استفاده کنید. در این حالت دستتون بیشتر بازه، برای مثال:
procedure TForm1.ADOTable1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := Pos('rezaei',DataSet['ContactName']) <= 0;
end;
یادتون باشه که برای استفاده از رویداد OnFilterRecord باید خصوصیت Filtered = True باشه.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.