PDA

View Full Version : سوال: جستجو



com.ha.za
پنج شنبه 13 اسفند 1388, 18:21 عصر
مشکلمو تو پست قبلی مطرح کردم ولی ظاهرا کسی منظورمو متوجه نشد
از چه روشی استفاده کنم که هنگام جستجو اگر edit ها خالی بود همه جدول و نشون بده ؟

یه مثال گذاشتم که کار میکنه ولی برای بعضی هاش اشتباهه
اگه لطف کنید راهنماییم کنید ممنون میشم
فقط سریع خیلی واجبه:عصبانی++::عصبانی++::عصب نی++::عصبانی++::عصبانی++::عصبا ی++::عصبانی++:

http://rapidshare.com/files/358759134/New_Folder.rar.html (http://rapidshare.com/files/358757899/New_Folder.rar.html)

اگه نمونه مثال برام بذارید خیلی عالی میشه

7008312319
پنج شنبه 13 اسفند 1388, 18:36 عصر
if Form7.RadioGroup2.ItemIndex=0 then
begin
DataModule2.ADOTable2.Filter:='code' +' like '+#39+Edit2.Text+#39;
DataModule2.ADOTable2.Filtered:=true;
end;
if Form7.RadioGroup2.ItemIndex=1 then
begin
DataModule2.ADOTable2.Filter:='name' +' like '+#39+Edit2.Text+#39;
DataModule2.ADOTable2.Filtered:=true;
end;
if Form7.RadioGroup2.ItemIndex=2 then
begin
DataModule2.ADOTable2.Filter:='she' +' like '+#39+Edit2.Text+#39;
DataModule2.ADOTable2.Filtered:=true;

com.ha.za
پنج شنبه 13 اسفند 1388, 20:17 عصر
دوست عزیز من میخوام جلو این همه اگرارو بگیرم و فقط با یک دستور همه شرط هارو بررسی کنم
و کاربر هر کدوم و خواست انتخاب و هر کدوم و نخواست انتخاب نکنه
و یا همشو با هم انتخاب کنه
خواهشا کمک کنید کارم خیلی گیره

com.ha.za
جمعه 14 اسفند 1388, 00:49 صبح
کسی نیست جواب منو بده ؟
:گریه:

Jozef
جمعه 14 اسفند 1388, 09:52 صبح
سلام دوست عزیز
یه نگاه به برنامه زیر بنداز
اگه همونه که مد نظرته بگو تا کدشو بذارم
قسمت فیلترش 4-5 خط کد داره
ولی اگه درست متوجه منظورتون شده باشم، فکر کنم if های زیادی بخواد ولی نه به روش دوست عزیزمون

com.ha.za
جمعه 14 اسفند 1388, 12:46 عصر
;کدوم برنامه ؟ برنامه ای که اینجا نیست :متفکر:
اگر ممکنه همون کدو برام بذارید شاید مشکلم حل شه
در ضمن مشکل اینجاست که واسه فیلد مبلغ تو بانکم از text استفاده کردم به همین علت درست جواب نمیده
ممنون

Modernidea
جمعه 14 اسفند 1388, 14:40 عصر
منظورتون همینه؟!
درضمن شما هیچ شرطی برای CheckBox ها تعیین نکرده بودید.

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
S:='';

if (CheckBox1.Checked) And (edit1.Text<>'') then
s:='id_mosh LIKE Type1';

if (CheckBox2.Checked) And (edit3.Text<>'') then
begin
if S<>'' then
S:=S+' ' +'AND';
s:=S+' '+'id_BANK = Type2 ';
end;

if (CheckBox3.Checked) And (edit5.Text<>'') then
begin
if S<>'' then
S:=S+' ' +'AND';
s:=S+' '+'id_chek = Type3';
end;

if (CheckBox4.Checked) And (mas1.Text<>'') then
begin
if S<>'' then
S:=S+' ' +'AND';
s:=S+' '+'tar_sar >= Type4 And tar_sar <= Type5 ';
end;

if edit6.Text <> '' then
begin
IF S<>'' THEN
S:=S+' ' +'AND';
s:=S+' '+'mab >= Type6 And mab <= Type7 ';
end;

LABEL2.Caption:=S;
adq.SQL.Clear;

if S<>'' then
begin
adq.SQL.Add('select * from tbl_CHEK where'+' '+s );
if (CheckBox1.Checked) And (edit1.Text<>'') then
adq.Parameters.ParamByName('Type1').Value := Trim(Edit1.Text);
if (CheckBox2.Checked) And (edit3.Text<>'') then
adq.Parameters.ParamByName('Type2').Value := Trim(Edit3.Text);
if (CheckBox3.Checked) And (edit5.Text<>'') then
adq.Parameters.ParamByName('Type3').Value := Trim(Edit5.Text);
if (CheckBox4.Checked) And (mas1.Text<>'') then
begin
adq.Parameters.ParamByName('Type4').Value := Trim(mas1.Text);
adq.Parameters.ParamByName('Type5').Value := Trim(mas2.Text);
end;
if edit6.Text<>'' then
begin
adq.Parameters.ParamByName('Type6').Value := Trim(edit6.Text);
adq.Parameters.ParamByName('Type7').Value := Trim(edit7.Text);
end;
if s = '' then
end
else
adq.SQL.Add('select * from tbl_CHEK');// in code
adq.ExecSQL;
adq.Active := True;

end;



موفق باشید.

Jozef
جمعه 14 اسفند 1388, 21:09 عصر
آخ شرمنده
اگه فیلد مبلغ رو به خاطر جدا کننده سه رقم اعداد text ذخیره میکنین، باید بگم که روش های بهتری هم بود
به هر حال چون text از اولین حرف شروع به مقایسه میکنه، اشتباه میشه، واسه حلش باید یه تابع بنویسی که کاما رو حذف کنه و نتیجه را به money یا big int تبدیل و سپس مقایسه کنه
اینهم کل برنامه که قول داده بودم روشی بدون if:لبخند:

Jozef
جمعه 14 اسفند 1388, 21:14 عصر
راستی من واسه پروژه ای که الان کار میکنم دقیقا تو قسمت جستجو هستم و دو روش واسه خودم درست کردم
یکی با استفاده از فیلتر دلفی یکی با استفاده از دستورات sql
اگر کد بالا رو نپسندیدی بگو اونا رو هم برات میفرستم

com.ha.za
جمعه 14 اسفند 1388, 21:47 عصر
دستت درد نکنه حل شد واقعا نا امید شده بودم
نمیدونم تو قسمت بانک اطلاعاتی چرا بچه ها اینقدر کند جواب میدن
در هر صورت زحمت کشیدی ممنون