filteleme(arama)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

filteleme(arama)

Mesaj gönderen mazhargemci »

dbgridden edit içine yazılanı buton ile aratmak istiyorum nasıl yapabilirim.Yalnız harfe bastıgım an bile o harf içinde olanlar gelicek arama yapınca yardımcı olursanız sevinirim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

aslında buldum da

Kod: Tümünü seç

 procedure TForm1.sEdit12KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
adoquery1.Close;
adoquery1.SQL.Text:='select * from ArsivTablo where AdiSoyadi like' +#39+#37+sedit12.text+#37+#39;
adoquery1.Open;
end;
filtelemeyi yapıyor ancak

dbgridteki başlık kısmını eski haline getiriyor

Kod: Tümünü seç

sql.Add('select DosyaNo as [Dosya No], SicilNo as [Sicil No] from ArsivTablo') ;
filtrelemeyi yaptığı zaman yukardaki kodları yok sayıyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen mrmarman »

Biraz SQL çalışmamız lazım.
WHERE kelimesi dahil sona kadar olan kısmı kopyala, alttakinin sonuna bir boşluk verip yapıştır. Projeyi çalıştır arkana yaslan ve sonucu izle.
Resim
Resim ....Resim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

abi dediğin herşeyi yaptım projeyi çalıştırdıktan sonra arkama bile yaslandım :) ama sonuç aynı
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

yukardaki sedit12 keyup olduğu gibi kaldı

Kod: Tümünü seç

sql.Add('select DosyaNo as [Dosya No], SicilNo as [Sicil No] from ArsivTablo where AdiSoyadi like' +#39+#37+sedit12.text+#37+#39') ;
şeklinde yaptım ama aynı sonucu verdi
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen mrmarman »

bunu yazıyorsun ve başlıklarda Dosya No gibi değil orjinal alan adını görüyoruz ve de filtre yapmıyorsa DBGrid başka bir datasource bakıyor derim
Resim
Resim ....Resim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

filtrelemede hiç bir sıkıntı yok fakat dosya no şeklinde değilde orjinal alan adını görünüyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen mrmarman »

işte söylediğim ve sql. add dediğin kısım başka yerde, dbgridin baktığı başka yerde olduğuna eminim. Bu kadarı net.
Resim
Resim ....Resim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

başka biyerlerde olamaz. birer tane adoquery ve datasource var
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

abi aynısını senin gönderdiğinde yaptım veritabanına belge bilgi olan onda da aynısı oluyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen mrmarman »

Şimdi aşağıdaki gibi yazdın ve başlıklar eskisi gibi görünüyor öyle mi?

DBGrid'in fieldlarını elle mi doldurdun o zaman. Çünkü başka ihtimal kalmıyor.

 

Kod: Tümünü seç

procedure TForm1.sEdit12KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
adoquery1.Close;
adoquery1.SQL.Text:='select DosyaNo as [Dosya No], SicilNo as [Sicil No] from ArsivTablo where AdiSoyadi like' +#39+#37+sedit12.text+#37+#39;
adoquery1.Open;
end;
şeklinde düzelttiğini iddia ediyorsun ben buna inanmak istemiyorum. Israrım devam ediyor.
Resim
Resim ....Resim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

ne kadar alan adı varsa hepsini mi yazacağız sadece bir tanesini yazıyordum :(
hepsini yazmamız gerekiyormuş :(
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen mrmarman »

sonuna * koyabilir sonra da istemediğini gridden de gizleyebilirsin. Lazımsa içeriği... Basit bir döngüye bakar

yani

Kod: Tümünü seç

select DosyaNo as [Dosya No], SicilNo as [Sicil No],  * FROM... 
Resim
Resim ....Resim
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: filteleme(arama)

Mesaj gönderen mazhargemci »

Kod: Tümünü seç

procedure TForm1.sEdit13KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
adoquery1.Close;
adoquery1.SQL.Text:='select DosyaNo as [Dosya No], SicilNo as [Sicil No],' ;
adoquery1.SQL.Text:='AdiSoyadi as [Adı Soyadı], TcKimlik as [Tc Kimlik No], Telefon as [Telefon], ';
adoquery1.SQL.Text:='isyeriMevkii as [İşyeri Mevkii], isyeriNo as [İşyeri No], Metrekaresi as [Metrekaresi], ';
adoquery1.SQL.Text:='KiraBedeli as [Kira Bedeli], BaslaTar as [Başlangıç Tarihi], BitisTar as [Bitiş Tarihi],';
adoquery1.SQL.Text:='A_BelgeAdi as [Belge Adı], A_BelgeTip as [Belge Tip], A_BelgeTip, A_BelgeAdi';
adoquery1.SQL.Text:='from ArsivTablo where isyeriMevkii like' +#39+#37+sedit13.text+#37+#39;
adoquery1.Open;
end;
şeklinde yaptım
edite yazarken geçersiz deyimi; 'Delete', 'insert','procedure', 'select' veya update' bekleniyor diye kızdı abi :(
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: filteleme(arama)

Mesaj gönderen thelvaci »

Bir datayı çektikten sonra TDataSet'in Filter ve Filtered özelliklerini de kullanabilirsiniz.
Cevapla