PDA

View Full Version : مشکل با Filter کردن Table



داوود
چهارشنبه 29 تیر 1384, 08:46 صبح
من در یک فرم یک Table و دو Edit دارم . می خواهم با استفاده از مقادیر Textاین دو Table Edit را فیلتر کنم . مقادیری که در درون دو Edit قرار دارند یکی فیلد Sday از نوع Integer و دیگری فیلد Sname از نوع String است . این دستور را نوشته ام.
; Table1.filtered:=false Table1.filter:=format('(Sday = %d) and (Sname=%s)',[strtoint(edit1.text),(edit2.tex)]);
; Table1.filtered:=true
اما به محض اجرا با پیغام زیر مواجه می شوم
لطفا من را راهنمایی کنید.

m-khorsandi
چهارشنبه 29 تیر 1384, 09:06 صبح
درود

در مورد این موضوع قبلا مفصل بحث شده، فقط بگم که برای قرار دادن یک رشته در جلوی فیلد در Filter حتما باید از Single quotation استفاده کنی. مثال:


Table1.Filter := 'SName = ' + QuotedStr('ALI');

داوود
چهارشنبه 29 تیر 1384, 09:21 صبح
ولی من می خواهم تا هر دو شرط را داشته باشم .

m-khorsandi
چهارشنبه 29 تیر 1384, 09:34 صبح
چیزی که من نوشتم یه نمونه بود،
شما میتونید هر دو شرط رو داشته باشید ولی باید از این فرمت پیروی کنید.

داوود
چهارشنبه 29 تیر 1384, 12:06 عصر
میشه دستورش رو بنویسید.

m-khorsandi
چهارشنبه 29 تیر 1384, 12:49 عصر
Table1.filter := format('(Sday = %d) and (Sname=%s)',[strtoint(edit1.text), QuotedStr(edit2.text)]);

داوود
چهارشنبه 29 تیر 1384, 12:58 عصر
با تشکر فراوان . مشکلم حل شد. امیدوارم موفق باشی.

babak869
چهارشنبه 29 تیر 1384, 17:53 عصر
با سلام
ببخشید میشه کمی در باره این دو علامت %d , s% توضیح بدبد و بگید که جرا اینو نوشتید؟

vcldeveloper
پنج شنبه 30 تیر 1384, 07:29 صبح
ببخشید میشه کمی در باره این دو علامت %d , s% توضیح بدبد و بگید که جرا اینو نوشتید؟
اون دو علامت ربطی به Filter ندارند، بلکه مربوط به تابع Format هستند. در راهنمای دلفی برای Format این علائم و معنی هاشون توضیح داده شده.