Merhaba, Personel Yönetim Sistemini geliştirmeye kaldığımız yerden devam ediyoruz.
Bir önceki dersimizden hatırlayacaksınız veri tabanımıza manuel olarak bir kaç kayıt eklemiştik. Aşağıdaki linkten göz atabilirsiniz.
Bu yazımda SEARCH butonu ile istediğimiz kriterlerde verilerimizin listelemeyi Grid üzerinde görmeyi öğreneceğiz.
Form tasarımımızı bir hatırlayalım.
SEARCH butonu da özel butonlarımızdan biridir. Bir butonu 28*28 boyutlandırıp ismini SEARCH yaptığımızda, gördüğünüz şekli alacaktır.
Şimdi ilk olarak şunu yapalım. Tüm verilerimizi bir SELECT sorgusu ile tablomuzda gösterelim.
Bu kodları SEARCH butonu altına yazıp Build edelim.
SELECT *
FROM EDUTESTTABLE
INTO PERSONELBILGISI;
Ekranda görelim.
Görüldüğü gibi veri tabanındaki tüm kayıtlarımızı listelemiş olduk.
Burada Grid ile ilgili bir özellikten bahsedeyim. Grid üzerinde boş olan bir yere çift tıklarsanız verilerinizin tümünü kolonlarda görünür hale gelecek şekilde Grid’in tüm kolonlarını boyutlandırır. Aşağıda gördüğümüz gibi daha düzenli hale geldi.
Şartlı Sorgulama
Şimdi verilerimizi yukarıdaki textbox alanlarına göre şartlı sorgulama işlemini yapalım.
Select yazacağımız bir SQL sorgusunda Where ifadesi ile istediğimiz şartlara uygun verileri listeleyebiliyorduk.
CP() METODU
Normal bir Select işleminde LIKE ifadesi ile değeri % olarak aratsak bu tüm verileri getir demektir. IAS’ın bir önceki sürümünde % ifadesini yapabilmek için gerekli TextBox alanına % işareti koymak gerekiyordu. Ama 6.04’le beraber gelen CP() metodu sayesinde artık boş bırakılan TextBox alanları sorguya aktarılırken % olarak aktarılabiliyor.
Yani ekstra yazma işleminin önüne böylece geçilmiş ve zaman kazandırılmış.
Şimdi gelin bunu nasıl uyguladığımıza bakalım.
String alanlar LIKE deyimiyle aratılabilir bunu not olarak düşelim.
Integer olan bir alana LIKE işlemi uygularsak uygun formatta hiç bir veri getiremeyecektir.
SELECT *
FROM EDUTESTTABLE
WHERE PERSONELNO LIKE CP(PERSONELNO)
AND PERSONELNAME LIKE CP(PERSONELADI)
AND PERSONELLASTNAME LIKE CP(PERSONELSOYADI)
AND PHONENUMBER LIKE CP(TELEFONNO)
AND DEPARTMENT LIKE CP(DEPARTMAN)
AND MAIL LIKE CP(MAIL)
AND BIRTHDATE <= DOGUMTARIHI
AND STARTDATE <= ISEBASLAMATARIHI
INTO PERSONELBILGISI;
Şimdi kodlara göz atalım.
Bir Select işlemi ile veri çekiyoruz. * ile var olan tüm verilerin gelmesini istedik. Tablomuz EDUTESTTABLE.
Sonrasında işin içine Where şartı giriyor.
CP’nin kullanım şekli gördüğünüz gibi CP(Parametre) şeklindedir.
Yaptığı işlem ise şudur.
Gelen değeri kontrol eder. Eğer dolu ise aynen aktarır. Ama boş ise veya % olarak bir değer girilmişse “%” işareti olarak aktarır.
Şöyle bir fonksiyon olması olasıdır.
PARAMETERS :
STRING X;
IF X=='' && X=='%' THEN
X='%';
RETURN X;
ELSE
RETURN X;
Türü DATE olan alanlara CP uygulayamayacağımız için normal eşitlik olarak yazdık.
Şimdi tüm alanları boş bırakarak bir SEARCH edelim.
Gördüğünüz gibi tüm veriler Grid üzerine aktarıldı. Çünkü tüm veriler yukarıdaki belirtilen şartlara uygundur.
Farklı arama kriterleriyle deneyelim. Tüm hepsini % işareti koyarak deneyelim.
Yine tüm verilerimizin geldiğini görüyoruz.
Şimdi ise isminin baş harfinde M olanları aratalım.
Mailinin baş ilk iki harfi “zb” soyadının ilk 3 harfi “bil” olanları aratalım.
Select sorgumuz gayet başarılı çalışıyor gördüğümüz gibi.
Bir sonraki yazımda görüşmek üzere.