PDA

View Full Version : جستجو بر مبنای قسمتی از یک فیلد



hasankhani
پنج شنبه 15 تیر 1385, 09:18 صبح
با سلام خدمت دوستان
من می خواستم امکان جستجو را بر اساس قسمتی از یک فیلد داشته باشم
یعنی اگر تمام فیلد را ننویسم فرم من بتواند اطلاعات را بیاورد
من از کامپوننت های خود اوراکل برای جستجو استفاده می کنم
متشکرم

majid_afra222
پنج شنبه 15 تیر 1385, 16:43 عصر
سلام
یه کمی بیشتر توضیح بدید، مفهوم نیست.

hasankhani
شنبه 17 تیر 1385, 08:16 صبح
با سلام
برای نمونه برای جستجوی نام شرکتی به نام (سازه های مهندسی اطلاعات)
دیگر احتیاجی به تایپ کامل اسم نباشد و تنها با زدن (سازه های) بتواند جستجو را به درستی انجام دهد.
من در فرم ها از کامپوننت های خود اوراکل که در developer به صورت معمولی وجود دارد استفاده می کنم ولی در قسمت جستجو باید حتما نام را به صورت کامل تایپ کرد تا فرم بتواند جستجو را کامل انجام دهد
خیلی ممنون

systemadmin
شنبه 17 تیر 1385, 12:32 عصر
سلام

LOV

hasankhani
شنبه 17 تیر 1385, 12:58 عصر
با سلام
میشه بیشتر توضیح بدهید
درضمن من نمی خواهم یک فرم دیگر مثل lov باز شود بلکه در همان جا ی مخصوص فیلد قسمتی از جمله را بنویسم و بر اساس آن جستجو کنم
متشکرم

m_mhjir
شنبه 17 تیر 1385, 15:28 عصر
سلام خسته نباشید

از چه برنامه ای استفاده میکنید؟
اگر از دولوپر خود اوراکل استفاده میفرمائید میتوانید از پرسجو استفاده کنید
که در 6i از کلیدهای f7 f8 استفاده میشود. البته جهت یادآوری بود:خجالت:

در فیلدها از علامت % استفاده کنید مثل "%سازه%" سپس پرسجو را کامل
نمائید.

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

majid_afra222
شنبه 17 تیر 1385, 17:00 عصر
سلام
m_mhjir عزیز جواب شما درسته ولی منظور آقای حسن خانی اینه که بدون اینکه چیزی اضافه بشه عملیات انجام بشه.
برای اینکار باید شرط Where پرس و جو رو خودمون کامل کنیم.
با استفاده از رویه set_block_property و تعیین مقدار برای متغیر DEFAULT_WHERE بلاک اینکار رو می کنیم، یعنی علامت % رو اول آخر کلمه زورکی اضافه می کنیم.

من یه Data Block از روی HR.Employees ساختم و روی فیلد First_Name اون این شرط رو گذاشتم.
روی تریگر Pre-Query بلاک این کدها رو بنویس.
فقط یادت باشه که حتما حالات exception رو هم در نظر بگیری.


declare
the_string varchar2(2000) := '';
begin
the_string := ' where upper(first_name) like ''%'||upper(:employees.first_name)||'%'' ';
:employees.first_name := '';
set_block_property('employees',DEFAULT_WHERE,the_s tring);
exception
when others then
null;
--...
end;


امیدوارم بدردت بخوره.

hasankhani
یک شنبه 18 تیر 1385, 07:34 صبح
با سلام
از شما دوستان خیلی خیلی متشکرم
راهنمایی بزرگی بود