Bu sayfadaki yazılar
Sayfanın metni
Sayfa 40
Merhaba.... Bir aylık aradan sonra köşemizde yine sizlerle birlikteyiz. Geçen ay Superbase'in kalbi diye nitelediğimiz Query konusuna başlamıştık. Siz de örneklerle incelediyseniz, önemini kavramışsınızdır. Anlayamadığınız kısımlar olursa, yazın cevaplayalım. Bu arada geçen ayki yazıda pikaj hatasından dolayı Query konusu resimleri dışında gelecek konuların resimleri girmiş. Aslına bakarsanız görsel olarak yazıdan daha hızlı ilerlemişiz. Şaka bir yana, bu hatadan dolayı özür dilerken, resimlerle ilgili konuların atlanmış olmadığını belirtmek isteriz. Sırası geldikçe her konu tek tek açıklanacaktır.
Query Report: Bazı raporlarda, alan bilgilerinin ara toplamlarını ya da tamamının toplamını almak isteyebilirsiniz. Superbase, bir query içinde bu tür özellikleri belirtmenize olanak sağlar. Query penceresinde bu tanımlamaları yapacağınız kısım, Report olarak etiketlenmiş satırdır. Bu tür herhangi bir tanımlama yapmayacaksanız, bu satırı boş bırakırsınız.
Tıpkı Labels gibi, Report kutusu tıklandığında Query Report diyalog penceresi açılır. Kullanımı operatör kutuları dışında diğer pencereler gibidir.
Query Report diyalog penceresi, 4 ana bölümden oluşur: Üzerinde dosya isimleri kutusu ile solda Alan ismi paneli, sağında seçimler için kullanılacak düğmeler ve değer kutusu, altta komut satırı ve en altta da pencereden çıkış için kullanılacak düğmeler.
Dosya seçimi ve alan seçimi işlemlerini artık biliyoruz. İsterseniz verilecek özellikler için kullanılacak düğmeleri kısaca açıklayarak devam edelim ve bir örnekle pekiştirelim:
SUMMARIZE (Özetleme): Rapor tüm dataları saklayacak, sadece SUM'ı takip eden fonksiyondan çıkan sonuç bilgilerini gösterecektir.
REPORT (Rapor): Bu düğme seçili ise, yapılan seçimler rapor içindeki bir gruba bağlı olmaksızın raporun tamamına uygulanır.
GROUP (Grup): Bu düğme seçili ise, yapılan tanımlamalar sadece rapor içindeki bir Alan Grubuna uygulanacaktır.
SUM (Toplama): Bu sözcüğü takip eden alanların, Report ya da Group seçimine bağlı olarak ara toplamları ya da genel toplamları alınır.
MEAN (Ortalama): Bu sözcüğü takip eden alanların, Report ya da Group seçimine bağlı olarak ara ya da genel ortalamaları bulunur.
COUNT (Sayma): Report ya da Group seçimine bağlı olarak, tüm raporun ya da bir grubun kayıtları sayılır.
Superbase, toplam ve ortalama bilgilerini belirtilen alana, o alanın nümerik formatı ile yazar. Sayma sonucu ise, her grubun en sol kolonuna yazılır.
Tanımlamalarda sürekli grup, grup deyip durduk. "Peki nedir bu grup?" diye sorduğunuzu duyar gibiyiz. Grup, bir raporun içerdiği belli kıstaslara göre sınıflanabilen kayıt serileridir. Mesela alacaklarınızı tuttuğunuz bir müşteri dosyasındaki kayıtları, şehirler hatta semtlere göre gruplar halinde sınıflanmış olarak raporlayabilirsiniz.
BİR RAPOR HAZIRLAYALIM: Raporlama konusunu daha iyi açıklayabilmek için, bir örnek üzerinde açıklama yapmak daha doğru olacak. Yine bir takım dosyaların var olduğunu düşünerek örneğimizi açıklayacağız. Sizler ya gerçekten var olan dosyalarınız üzerinde çalışırsınız ya da kullanımınıza uygun dosyalarınızı oluşturursunuz.
Örneğimizde, alacak hesaplarımızı tuttuğumuz bir ALACAKLAR dosyamızın olduğunu varsayacağız. Dosyada müşterinin adı ve adresi dışında toplam borç miktarları ile borç bakiyeleri tutuluyor. Belirli dönemlerde aldığımız raporlar ile tahsilat planı çıkartıyoruz.
Müşterilerin, bulunduğumuz şehir dışında da bulunduğunu düşünürseniz, tahsilat planı için belirli yerleşim yerlerinin sınıflanarak raporlanması gerekir. Bu tür bir rapor için, öncelikle coğrafi bir gruplama söz konusu. Dosyadaki tüm bilgiler, şehirlere ve semtlere göre gruplanarak borç bakiyeleri ile birlikte dökülecek ve hem ara hem de genel toplamlar alınarak her gruptaki kayıt miktarı da sayılacak. İsterseniz şimdi tüm bu işlemleri adım adım birlikte yapalım:
Query Edit seçeneği ile açılan query tanımlama penceresinde, Report kutusunu klikleyerek Query Report penceresini açalım ve devam edelim:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 41
1. Penceredeki Report düğmesini klikleyerek yapılacak tüm seçimlerin raporun tamamına uygulanmasını sağlayalım.
2. SUM düğmesini klikleyerek seçilen nümerik alanların toplanacağını belirte-
3. Alan ismi panelinden toplanacak sayısal alanların seçimini yapalım: Toplam Borç, Bakiye. Superbase, bu adımlarda yapılan tüm seçimleri ana komut satırına aktarır. Buralarda her şeyi uygun olarak yaptıysanız, komut satırı aşağıdaki gibi görünecektir:
REPORT SUM Toplam Borç.Bakiye
4. Gruplayarak topladığı kayıtları saymasını ve toplamı raporun sonuna yazmasını da istiyoruz. Bu işlem için kullanılacak seçenek düğmesi, COUNT.
Bu düğmeye de klik yaptığınızda, satırın son durumu:
REPORT SUM Toplam Borç,Bakiye COUNT
olur. Burada en önemli konu, yapılacak sırasının doğru olarak verilmesidir. Alan ve operatörlere rastgele basılırsa, anlamsız raporlar, hatta uyumsuz data alanı ve operatörler kullanmanız sebebiyle "Can't do this" (Yapılamaz) mesajı alabilirsiniz.
Şimdi sıra rapordaki farklı gruplar için farklı özellikleri tanımlamaya geldi. Bu prosedür de tıpkı raporun tamamı için olduğu gibidir:
1. Gruplama için GROUP operatörünü kullanacağımızdan bahsetmiştik. Group düğmesi kliklenerek ana komut satırına aktarıldıktan sonra, gruplamada kullanılacak alan ismi seçilir. Her GROUP sözcüğünü bir alan ismi takip eder.
Örneğimizde gruplamada kullanacağımız ilk alan, Şehir. Bu kıstasla, Superbase'in yapacağımız belirlemeleri verilen isimdeki gruplara uygulamasını sağlayacağız:
GROUP Şehir
Burada tanımlanan grup alanı, Query Order komut satırında da kullanılmış olabilir. Gruplama alanının text alanı olması en iyisidir, ancak kullanım amacına göre tarih ve sayı alanları da kullanılabilir.
2. Rapor sonunda alacağımız genel toplamdan başka, şehir şehir grupların toplamlarını da almak istediğimize göre yine SUM operatörünü toplanacak alanları belirterek ekliyoruz:
GROUP Şehir SUM Toplam Borç.Bakiye
3. Her gruba giren kayıt miktarının sayılmasını istiyoruz:
GROUP Şehir SUM Toplam Borç, Bakiye COUNT
Bu komutla aynı şehirde kaç kayıt olduğunu saydırıyoruz.
Evet... Sıra geldi şehirler içindeki semtlerin ve bu şehirlere bağlı kasabaların gruplanmasına. Semt veya ilçe bilgisinin dosya tanımında Adres2 diye bir alanda tanımlandığını düşünün. Bu durumda, yeni gruplama alanımız Adres2. Adres2 alanını da grup olarak belirtip, aynı genel rapor özellikleri ve şehir gruplamasında olduğu gibi, grup aratoplamı ve kayıt sayısını istiyoruz:
GROUP Adres2 SUM Toplam Borç.Baki- ye COUNT
Query Report penceresi ana komut satırına bu tanımlamayı da eklediğimizde, komutun son durumu şöyle olur:
REPORT SUM Toplam Borç.Bakiye COUNT GROUP Şehir SUM Toplam Borç.Bakiye GROUP Adres2 SUM Top- lam Borç.Bakiye COUNT
Bu komutu verip ekrana döküm aldığınızda, yaptıklarımızın anlamını daha iyi kavrayacağınızdan şüphemiz yok.
Adres2 grubu, şehir grubundan sonra tanımlandığı için, komutta şehir grubu dış grup olarak kabul edilir. Bu sıralamada tek bir kural mevcut: Alan grupları en dış seviyeden içe doğru verilir.
TOPLAM BORÇ
25000000.00 3000000.00
BAKİYE 12.400.000,00 288.000,00
28000000.00 15280000.00
1250000.00 200000.00
1250000.00 200000.00
300000.00 150000.00
300000.00 150000.00
29550000.00 15630000.00
ADI VE SOYADI DENİZ KARA ALİ SAPMAZ
Group Count 2 KADIKÖY
MEHMET ALDATMAZ
Group Count 1 KARAKÖY
VELİ DURGUN
Group Count 1 NİŞANTAŞ
Group Count 4 İSTANBUL
Report Count: 9
ADRES2 KADIKÖY KADIKÖY
KARAKÖY
NİŞANTAŞI
ŞEHİR İSTANBUL İSTANBUL
İSTANBUL
İSTANBUL
92930000.00 50640000.00
TABLO 1