ورود

View Full Version : طرز جستجوی چند حرفی در FOXPRO2.6



MOHAMAD4197
جمعه 11 شهریور 1384, 13:27 عصر
دوستان خواهش میکنم طرز جستجوی یک یا چند حرف که همزمان حروف پیدا شده را در پنچره BROWSE یا پنجره های مشابه نمایش داده و قابلیت بالا و پایین رفتن در رکوردها را نیز داشته باشد را توضیح دهید و ترجیحا اگر نمونه برنامه PRG آنرا دارید به اینجانب ایمیل کنید.

rezaTavak
شنبه 12 شهریور 1384, 11:43 صبح
سلام

منظورتون را واضحتر بگید.

یک مثال بزنید تا کمکتون کنیم.

MOHAMAD4197
شنبه 12 شهریور 1384, 18:55 عصر
سلام

منظورتون را واضحتر بگید.

یک مثال بزنید تا کمکتون کنیم.
دوست عزیز مثلا در لیست نام خانوادگی به دنبال نام "علیزاده" میگردیم. برنامه بصورتی باشد که با زدن حرف "ع" به ابتدای نام خانوادگیهایی که با "ع" شروع میشوند برود و بعد با زدن حرف "ل" که با حرف اول میشود "عل" به ابتدای نام خانوادگیهایی برود که با "عل" شروع میشوند برود و همینطور که حروف مورد جستجو زیادتر شود محدوده جستجو نزدیکتر میشود.
امیدوارم توضیح کافی باشد.متشکرم

kia1349
یک شنبه 13 شهریور 1384, 05:59 صبح
دوست عزیز مثلا در لیست نام خانوادگی به دنبال نام "علیزاده" میگردیم. برنامه بصورتی باشد که با زدن حرف "ع" به ابتدای نام خانوادگیهایی که با "ع" شروع میشوند برود و بعد با زدن حرف "ل" که با حرف اول میشود "عل" به ابتدای نام خانوادگیهایی برود که با "عل" شروع میشوند برود و همینطور که حروف مورد جستجو زیادتر شود محدوده جستجو نزدیکتر میشود.
امیدوارم توضیح کافی باشد.متشکرم

با دستورات sql شدنیه

javad_hosseiny
یک شنبه 13 شهریور 1384, 11:38 صبح
من یه نمونه برنامه مشابه دستور brows دارم
(یعنی خودش اطلاعات جدول را خوانده و در یک پنجره نمایش داده و قابلیت اسکرول و جستجوی حرف به حرف را نیز دارد و .....) ولی نکته اش این است که حتما براساس فیلد موردجستجو باید ایندکس داشته باشد و دوم اینکه براساس همان فیلد نیز اطلاعات جدول سورت باشد

ولیکن با استفاده از پارامترهای گزینه fields مربوط به دستور brows نیز می توانید تابعی را فراخوانی کنید و در آن تابع عملیات جستجو را کنترل کنید (این یکی راحتر است) (ولی متاسفانه سورس مربوط به آن را پیدا نکردم)

(فایل موردنظر را آپلود کردم توضیحات اضافی در داخل سورس هست (منظور پارامترهای ارسالی به تابع است) مثل رنگ زمینه ، رنگ منو ، نمایش رکوردهای حذفی و ......) می توانید آن را مطابق میلتان تغییر دهید

MOHAMAD4197
یک شنبه 13 شهریور 1384, 19:41 عصر
من یه نمونه برنامه مشابه دستور brows دارم
(یعنی خودش اطلاعات جدول را خوانده و در یک پنجره نمایش داده و قابلیت اسکرول و جستجوی حرف به حرف را نیز دارد و .....) ولی نکته اش این است که حتما براساس فیلد موردجستجو باید ایندکس داشته باشد و دوم اینکه براساس همان فیلد نیز اطلاعات جدول سورت باشد

ولیکن با استفاده از پارامترهای گزینه fields مربوط به دستور brows نیز می توانید تابعی را فراخوانی کنید و در آن تابع عملیات جستجو را کنترل کنید (این یکی راحتر است) (ولی متاسفانه سورس مربوط به آن را پیدا نکردم)

(فایل موردنظر را آپلود کردم توضیحات اضافی در داخل سورس هست (منظور پارامترهای ارسالی به تابع است) مثل رنگ زمینه ، رنگ منو ، نمایش رکوردهای حذفی و ......) می توانید آن را مطابق میلتان تغییر دهید
دوست عزیز آقاجواد از اینکه پاسخ بنده رو دادی خیلی ممنونم ولی اگر امکان داره یک مثال هم برای این فانکشن بیار . مثلا من یک فیلد نام خانوادگی با نام Lname دارم که برا اساس آنهم ایندکس شده و میخواهم با استفاده از فانکشنهای شما اینکاررو انجام دهم .

rezaTavak
یک شنبه 13 شهریور 1384, 22:44 عصر
سلام

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

LPARAMETERS tcWord
LOCAL lcWord
lcWord = LOWER(tcWord)
lcWord = ALLTRIM(UPPER(LEFT(lcWord,1))+SUBSTR(lcWord,2))
SEEK lcWord


این یک نمونه هر بار زدن صفحه کلید این روال را فرا می خوانم.

javad_hosseiny
دوشنبه 14 شهریور 1384, 18:39 عصر
در فایل ضمیمه فایل brows به همراه یک مثال و یک جدول ارائه شده (جهت نمایش جدول بصورت حرف به حرف) ضمنا جهت جستجو از دستور Locate استفاده کردم و نیازی به جدول ایندکس نیست (البته مناسب برای جداول با حجم کم هست) و جهت استفاده نباید ایندکس فعال باشد
(البته در داخل برنامه می توانید جهت جستجو در جداول بزرگتر دستور locate را به seek تبدیل کرده و از ایندکس استفاده کنید)

MOHAMAD4197
دوشنبه 14 شهریور 1384, 21:33 عصر
آقا جواد از شما خیلی ممنونم واقعا کمکم کرد و راهگشا بود . زنده باد