checkbox kullanarak istenen alanların query içine ekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

checkbox kullanarak istenen alanların query içine ekleme

Mesaj gönderen must_sargin »

iyi çalışmalar,
arama yaptım ancak bulamadım, benim yapmak istediğim bir formda birden fazla checkbox kullanarak kullanıcının seçtiği alanları query'e eklesin. yani kullanıcı tarih'i ve musteri'yi seçtiğinde filtreleme için oluşacak editler aktifleşecek ve tarih ve musteriye göre filtreleyecek.
ama kullanıcı sadece musteri'yi seçince ona ait edit aktifleşip ona göre filtreleme yapacak.
şimdiden teşekkürler.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

selam istediğiniz basit bi case mantığı ve programlama sorusu. daha önce onlarca örnek yazıldı bu şekilde.

if checkbox.checked then
edit1.enable.....
gibi editleri aktive edersiniz.

query de ise
que.sql.clear
que.sql.add (select * from table)
que.sql.add (where 1=1) // tüm kayıtları getirir.
if checkbox.checked then que.sql.add (and ad=edit2.text) //giib

kodlar tam doğru değil, syntex hataları var. mantık için verdim.
eğer tabloda bu alanlar gözükmesin istersn select cümlesinied caseli bi yapıda quryye eklersin
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Yapmak istediğin şeyi şöyle basit bir örnekle açıklamakta yarar görüyorum;
Bir tablo olsun ADRES adında alanalrı olsun ADI , SOKAK , MAHALLE gibi,
bizim 2 checkbox ımız olsun bunlar aktifleşirse her hangi birisd olaiblir onu sorguya dahil edecek,

Kod: Tümünü seç

var
Cumle:AnsiString;
begin
with query1 do
begin
Cumle:='Select *from ADRES where ADI<>""'; //kolay olsun die her halukarda gerçekleşen bir filtreleme ile sorguyu başlatalım.
if  checkbox1.checked then Cumle:=Cumle+' and SOKAK='+''''edit1.text+'''';
if checkbox2.checked then Cumle:=Cumle+' and MAHALLE='+''''edit2.text+'''';
close;
sql.clear;
sql.add(Cumle);
active:=true;
end;
end;

Bu şekilde bir örnek işini görür umarım mantık bu yani başarılar.
Volkan KAMADAN
www.polisoft.com.tr
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

iyi çalışmalar,
filtrelemede kullanıcı ilk checkbox'u seçmezse query:

' and musterino:=ahmet ' şeklinde query çalışmayacaktır. acaba ilk checkbox için değişmeyecek bir alan mı yapsam?
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Yani dikkat ederseniz, bende öyle yaptım ve örnek olması içiçn ADI alanı boş olmayan dolayısıyla siz bunu NOT nULL bir alana uygulayarak şartın sürekli gerçekleşmesini sağlayacaksınız.
Başarılar.
Volkan KAMADAN
www.polisoft.com.tr
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

iyi çalışmalar,
dediğiniz şekilde yaptım ve istediğim işlemi yaptım. çok teşekkür ederim. 1 saat içinde istediğim cevabı aldım. yardımlarınız için tekrar tekrar teşekkür ederim.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Ne mutlu bize.
Başarılar.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla