Ana içeriğe atla

Qlikview’e İlk Adım (Örnek Uygulama)

Önceki yazılarımızda iş zekâsının günümüzdeki öneminden bahsetmiş ve bu tür uygulamaların farklı platformlar kullanılarak gittikçe yaygınlaştığını dile getirmiştik. Daha sonra da bu tür uygulamaları geliştirebilmek için dikkat edilmesi gereken önemli noktalardan bahsetmiş ve son olarak da farklı bir altyapı ile yeni nesil bir iş zekâsı platformu olan Qlikview’in özelliklerini paylaşmıştık. Bu yazımızda artık Qlikview platformuyla tanışarak küçük bir uygulama gerçekleştireceğiz.
Qlikview de profesyonel olarak uygulama geliştirmek için lisanslı ürünü temin etmeli ve tüm özelliklerinin kullanılabildiği versiyonu kullanmalıyız. Ancak sistemi genel hatlarıyla tanımak ve örnek raporlar hazırlayabilmek için “Qlikview Personel Edition” versiyonunu hazırlamış. Bu versiyonu http://www.qlikview.com/ adresinden “downloads” bölümü altından indirip kurabilirsiniz. Kurulum tamamlandıktan sonra uygulamayı çalıştırdığınızda karşınıza başlangıç sayfası gelecek. Bu sayfada son yapılan uygulamalar, Qlikview versiyonu ile ilgili bilgiler mevcut.
image
Bir rapor uygulamasına başlamak için menüden New seçeneği ile yeni bir Qlikview sayfası yaratılır. Ekrana gelen bu boş sayfa raporun görsel kısmının tasarlanacağı alandır. Raporun kullanacağı veriyi oluşturmak ve/veya veri kaynaklarından veriyi ilgili verileri almak için menüden “Edit Script” seçilmelidir. Açılan script ekranında aşağıda görüldüğü gibi varsayılan tanımlamalar yapılmıştır. Dikkat ettiyseniz değişkenlere yapılan atamalar “SET” anahtar kelimesiyle yapılıyor.

image
Qlikview bir çok farklı tipte kaynağına uygulama üzerinden erişmeye imkan veriyor. Ekranda görüleceği gibi veritabanlarına, bir dosya (text,excel vs) üzerinde verilere, internet üzerindeki verilere veya kendi oluşturacağı farklı raporlardaki verilere ulaşmak mümkün. Ancak biz örnek raporumuzda SQL Server üzerindeki bir veriyi alarak devam edeceğiz. Bunu yapabilmek için ekrandaki “Connect” butonu ile OLEDB kaynakları içinden “Microsoft OLEDB Provider for SQL Server” seçmeliyiz. Bu seçimle birlikte karşımıza klasik SQL Server bağlantı penceresi gelecek. Pencereden hangi server’a bağlantı yapacağımızı, kullanıcı adı, şifresi ve kullanacağımız veritabanı bilgilerini girerek bağlantı seçimlerini tamamlayacağız. Bu işlem sonrasında script editörümüze bağlantı bilgileriyle ilgili aşağıdaki gibi başlayan ve devam eden bir script otomatik olarak eklenecektir.
CONNECT TO [Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa . . . . . .
Raporda kullanacağımız veri kaynağına bağlantı sağladıktan sonra yapacağımız ikinci adım bu veri kaynağında bulunan hangi verilerle işlem yapacağımızı seçmektir. Bunu da yine editör ekranında bulunan “Select” butonu yardımıyla yapacağız. Butona bastığımızda karşımıza ilk önce tekrar bağlantı bilgileri ekranı gelir ve burayı standart şeklinde tamamladığımızda bir sonraki adım olan veri seçimi ekranı açılır. Açılan ekranda aşağıda görüldüğü gibi müşteri tablosundan bazı alanlar seçilmiştir. Bu seçimin Qlikview de saklanması için otomatik olarak oluşturulan script de yine ekranın alt kısmında görüntülenmektedir.
image
Yapılan seçim tamamlandıktan sonra ekranda görüntülenen script olduğu gibi script editöre aktarılır. Yaptığımız bu işlem rapor dosyamıza veri kaynağında bulunan müşteri tablosundan kayıtları çekecek ve kendi içinde saklayacaktır. Qlikview’i diğer platformlardan ayıran özelliklerinden biri olarak bellek içi veritabanından bahsetmiştik. İşte bu özellik burada devreye giriyor. Bir kere raporu oluşturup kaydettikten sonra bir daha bu veri kaynağına ulaşma gereği duymayacaktır. Bu aşamada script editörü menüsünde “Reload” butonuna tıkladığımızda editörde bulunan tüm scriptler çalışarak belleğe yüklenir. Yazılan script’e elle müdahale etmiş isek veri kaynaklarından birer kayıtlık örnekler üzerinden çalışacak olan “Debug” butonuna basarak tüm scriptin tamamen hatasız olduğunu anlayabiliriz. Aksi halde hatalı script son satırda olsa bile önceki tüm veriler yüklenir ama hatadan dolayı tamamen bitiremez. Büyük verilerde belleğe yüklemek uzun sürebileceği için önce debug ile script kontrol edilmeli sonra reload ile çalıştırılmalıdır.
Belleğe yüklenen verilerden rapor yapmak için script editörümüzü kapatıp rapor ekranımıza geri dönüyoruz. Sayfada sağ tıklayarak açılan menüden “New Sheet Objects” seçeneğinden eklenecek bir nesne seçiyoruz.
image
Seçtiğimiz nesnenin belleğe yüklenen hangi veriyi göstereceğini nesne özelliklerinden tanımlayacağız. Örnek olarak “List Box” seçelim. Seçim yaptığımız anda açılan pencerede bu listbox üzerinde bellekteki hangi alanın görüntüleneceğini, numerik bir değerse formatlarını, font ve yazı tiplerini gibi birçok özelliğini değiştirebiliyoruz.
image
Script editörümüzde müşteri tablosundan bazı alanları seçmiştik bualanlardan TXTUNVAN TXTMUSTERIGRUPKOD TXTMUSTERIEKGRUPKOD alanları için birer tane listbox ekleyelim. Eklenen tüm listeler kendi içinde tek olan kayıtları listelerler. Müşteri kaydı tek olacağından anlaşılması kolay ancak müşteri ek grubu için düşünürsek tüm müşterilerde tanımlı olan ek grup listesi “DISTINCT” şekilde gelir. Artık bu noktadan sonra eklenen bu üç nesne birbiriyle ilişkili şekilde çalışacaktır. Müşteri listesinden bir müşteri seçildiğinde, müşteri grubu ve müşteri ek grubunda o müşterinin dahil olduğu gruplar seçili olarak belirecektir. Aynı şekilde bir müşteri grubu veya ek grubu seçtiğimizde de o gruba ait müşteriler ve o müşterilere ait diğer grup seçili hale gelecektir. Dolayısıyla ilişki tek yönlü değil anlık olarak çift yönlü şekilde çalışmaktadır. Bir örnek verecek olursak hiç seçim yapılmamış rapor şu şekildedir;


image
Bir müşteri seçtikten sonraki görüntü ise şu şekildedir;
image
Seçim yapılan listedeki kriter farklı renkte gösterilirken o kayıt ile ilgili diğer listelerdeki kayıtlar da farklı bir renkte belirtilmiştir. Bu şekilde birbirinden bağımsız tablolar ve kayıtlarla ilişkisel sonuçlar çok hızlı ve pratik şekilde oluşturulabilir.
Qlikview’de uygulama geliştirmek görüldüğü gibi hızlıdır ancak yapılan çalışmanın amacı, hedefi ve istenen sonuçlar iyi analiz edilerek bu çalışmaya başlanmalıdır. Örneğimizde sadece liste nesnesi kullandık. Diğer nesneleri ve veri kümesiyle ilişkili kayıtlarla bütün olarak bir işlem yapmak mümkündür. Qlikview’de ilk raporumuzu yaptık :) , bir sonraki yazımızda daha birçok nesnenin kullanıldığı bir rapor yapacağız.
Mustafa ERŞAHİN

Yorumlar

Bu blogdaki popüler yayınlar

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Ama

Yazılım Maliyet Tahmineleme Tecrübeleri

Yazılım mühendisliğinde maliyet hesabı her zaman problem olmuştur. "Bu iş kaç Adam/Gün tutar?" sorusuyla sıkça karşılaşıyoruz. Adam/gün veya Adam/ay ölçütleri bir kaynağın/kişinin belirtilen zaman dilimindeki iş gücü anlamına gelir. Tabi bu noktada yine kafa karışıklıkları başlar. 6 A/G'lik bir işi hızlandıralım diye 2 kişi ile yapmaya çalışsak ve kaynak/kod, modül, altyapı, insan vb. her bir şeyi bir kenara bıraksak, matematiksel basit formülle 6/2=3 A/G'de biter? Gerçek hayat böyle değil, öncelikle bunu anlamamız lazım. Hep şu örnek verilir; "Aynı bebeği 2 kadın birlikte daha kısa sürede doğurur mu?" Eğer bunun cevabı "Evet" ise (veya bir gün böyle bir durum ortaya çıkarsa), yazımı değiştirmem gerekecek:) Mevzu gerçekten derin...Maliyet hesabı; bulunduğunuz firmanın yazılım süreçlerini hangi methodlarla uyguladığına, ilgili işin o dönemdeki aciliyetine, (şirket yönetiminin baskısına:)) vb. bir çok duruma bağlı olabilir. Örneğin; bizim firmada e

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde ( 1 , 2 ) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki: “Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler , Sistem (Proje kapsamını belirtir) , Use Caseler ve bunlar ara