23 Ağustos 2015 Pazar

Alternatif Durumlar

QlikView raporunuzun arayüzündeki objeleri gruplayarak bir grupta yapılan seçimin sadece o grupta yer alan objeleri etkilemesini sağlayabilirsiniz. Örneğimizdeki Ay-Liste1'de yapılan seçimin sadece Grafik1'i etkilemesini istiyoruz.
Ayarlar|Belge Özellikleri...|Alternatif Durumlar...'da Ekle diyerek arayüzdeki objeleri kaç gruba ayıracak isek o kadar grup belirliyoruz; bizim örneğimizde iki tane:
Sonrasında Uygula|Tamam diyoruz. Akabinde Grup1'e dahil etmek istediğimiz arayüzdeki objeler olan Ay-Liste1 ve Grafik1 üzerinde sağ tıklayıp Özellikler|Genel sekmesinde Alternatif Durum kısmında dahil etmek istediğimiz grubu (yani Grup1'i) seçiyoruz. Grup2'ye dahil etmek istediğimiz objelerde de aynı işlemi yapıyoruz (objeler üzerinde sağ tıklayıp Özellikler|Genel sekmesinde Alternatif Durum kısmında Grup2'yi seçiyoruz). Ve Uygula|Tamam:
Ay-Liste1'de NISAN ayını seçtiğimizde Grafik1 grafiğinde sadece seçtiğimiz ay olan NISAN verisi görülüyor, diğer objelerde ise herhangi bir değişiklik olmuyor:
Çalışma dosyasına buradan erişebilirsiniz.

İyi çalışmalar..

Hesapları Renklendirmek

Raporunuzda hesap ettiğiniz alanı, belirli aralıklarla renklendirebilirsiniz. Örneğin elinizde resimdeki gibi aya göre satış miktarları olsun. Ve ortalama satış miktarına göre performansı düşük ayları belirlemek istiyorsunuz. Yani AYA GORE SATISLAR grafiğinde satış miktarılarını son sütundaki ortalama satış miktarı ile kıyaslayarak aşağısında/üstünde olarak renklendirmenin peşindesiniz. Bunun iki yolu var. Her ikisini de anlatacağım. Öncelikle birinci yol.
Grafiğin üzerinde sağ tıklayıp Özellikler|İfadeler'de formulü yazdığımız yerin hemen sağındaki kısımda formulümüzün adının yanındaki artı işaretine tıkladığımızda bir liste açılıyor. Bu listeden Arka Plan Rengi seçiyoruz. Sonrasında sol tarafta Tanım hücresine formulümüzü yazıyoruz:
Yazdığımız bu formüle göre hücrelerin arka planlarını; eğer satış adedi ortalamaya eşit veya üstünde ise grafiğimizi Sütun Grafiği yaptığımızda Renkler sekmesindeki renklerden birincisi ile, değilse ikincisi ile boya diyoruz. Ve Tamam dediğimizde sonuç:
Sütun Grafiği'nde de aynısını yapabilirsiniz. Ayrıca grafiğe burada eklediğimiz ortalama için çizgi çizdirebilirsiniz. Öncelikle grafiğimizi kopyalayıp kopyaladığımız grafik üzerinde sağ tıklayıp Özellikler|Genel sekmesinde Sütun Grafiği seçerek grafiğimizi Sütun Grafiği'ne çevirelim. Sütunların renklendirilmesi aynı şekildedir. Her ayda ortalama sütunu olmaması için İfadeler'den AVG(TOTAL SATIS) ifadesini silmeyi unutmayın. Ortalama çizgisi çizmek için Özellikler|Sunum sekmesindeki sağ altı köşedeki Referans Çizgileri'ne Ekle diyelim. Karşımıza çıkan ekranın etiket kısmına grafikte gözükmesini istediğimiz etiketi (ben ortalama diyorum) yazıp Grafikte Etiketi Göster kutucuğunu tıklıyoruz. Akabinde İfade kısmına ortalama çizgimizin değerinin formulünü yazıyoruz:
Sonrasında grafiğin Özellikler|Sırala sekmesinde Y-Değeri kutucuğuna tıklayıp Artan'ı seçiyoruz. Ve sonuç:

II.Yol

Birinci yoldan yaptık. İkinci yol ise, grafiğin üzerinde sağ tıklayıp Özellikler|Görsel İpuçları kısmında renklendireceğimiz hesabı seçtikten sonra alt kısımdaki hücrelere kıyaslama noktalarımızı yazmak:
Ve Tamam sonrası sonuç:
Çalışma dosyasına buradan erişebilirsiniz.

İyi çalışmalar..

22 Ağustos 2015 Cumartesi

QlikView Scripting 9: Geliştiriciler İçin İpuçları

  • One of the most important design considerations is consistency. It allows users to learn how to navigate the application faster, be more efficient, and focus more on the data rather than the interface. Once consistency has been established, users can readily transfer that knowledge of application navigation and data interpretation to other applications and contexts.
  • Maintain consistent color in sheets and chart objects.
  • Use the same font colors and sizes in similar areas of the application.
  • In charts, keep the title bar in the same format and look, and keep the legend or axis title in the same area on all charts, if possible.
  • Avoid crowded objects and charts. Some UI experts suggest no more than 6 to 8 charts for a QlikView desktop application (per sheet).
  • Don't use red and green on the same chart or sheet, to avoid the red-green color blindness issue.
  • Avoid using too many colors, and avoid randomly assigned colors. Colors should have meaning. Use the Persistent Colors feature in the chart's Colors tab, in the Chart Properties dialog.
  • Use line charts or bar charts for comparing a dimension over time, and use stacked bar charts and pie charts for comparing parts to a whole.
  • Some experts advise not to use more than 10 sheets in your QlikView application.
  • When the charts are finished or you have a draft version, uncheck Allow Move/Size in the Layout tab of the Chart Properties dialog to limit inadvertent movement of charts in the application.
  • The use of macros in a QlikView application can slow down performance.
  • Note that all visible charts and objects on a graph take up RAM for the active sheet, and even objects not visible take up some amount of RAM.
  • Limit the number of records displayed in a table by imposing a calculation condition, if possible.
  • Use charts instead of text objects when you want to display the result of complex expression calculations.
  • The date(Now) function requires much more calculation overhead (it calculates every second of the day) than the data function today(). Use today() if you need to calculate the current date.
  • Reduce the number of fields in memory by limiting use of SQL select all (*) in scripts. Choose the fields you need rather than all of them. Also, drop tables in the script when they are not needed.

17 Ağustos 2015 Pazartesi

QlikView Scripting 8: Hata Ayıklama

  • Dosya|Kod Düzenle...| Hata Ayıkla aracı ile çalışırken sorgunuzda problem oluşturacak hataları tespit edebilir, sorgunuzun ve değişkenlerin nasıl çalıştığını gözlemleyebilirsiniz.
  • Main ekranında görünen sorguyu çalıştırırken durmasını istediğiniz satırın numarasına tıkladığınızda görünen kırmızı yuvarlak noktalar ile Kesme Noktaları (Breakpoints) belirleyebilirsiniz.
  • Hata Ayıkla ekranında görünen butonların işlevleri:
    • Kesme Noktaları kısmında yer alan Temizle, sorgunuzdaki tüm kesme noktalarını temizler.
    • Hata Ayıkla kısmında yer alan Çalıştır, başladığı noktadan bir hataya, kesme noktasına denk gelene kadar, denk gelmezse sorgunun sonuna kadar sorguyu çalıştırır.
    • Hata Ayıkla kısmında yer alan Animasyon Oynat, adım adım sorgunuzu çalıştırır. Böylece sorgunuzun çalışma sürecini izlemeniz kolaylaşır.
    • Hata Ayıkla kısmında yer alan Adım, tek tek sorgunun satırlarını çalıştırır. Bir sonraki satıra geçmek için tekraradn Adım'a tıklamanız gerekmektedir.
    • Sınırlı Yükleme'de belirleyeceğiniz satır sayısı kadar her tablodan veri yüklenecektir.
    • Burada Sonlandır ile hata ayıklayıcının çalışmasını sonlandırıp ekranı kapatabilirsiniz. Sonlandırdığınız ana kadar yüklenen veri raporda kalır.
    • İptal, çalışan hata ayıklayıcını iptal edip ekranı kapatabilirsiniz. İptal ettiğiniz ana kadar yüklenen veri de rapordan silinir.
    • Kapat ile direk hata ayıklayıcıyı kapatırsınız.
  • Hata Ayıkla ekranındaki pencereler:
  • Kesme noktalarının dışında sorguyu durdurmak istediğiniz kısımlara EXIT SCRIPT komutunu eklemeniz yeterlidir. Hata ayıklanırken buralara geldiğinde duracaktır.
  • Ayarlar|Belge Özellikleri ekranın Genel sekmesinde Günlük Dosyası Oluştur'u seçerseniz raporu her çalıştırmanızda raporunuzun yer aldığı dosyada otomatik olarak bir log dosyası oluştur. Bu log dosyasını açıp incelediğinizde raporunuzun hangi satırda neden dolayı hata verdiğini bulabilirsiniz. Sonrasında raporunuzun sorgusunun hata veren kısmından hemen sonrasına EXIT SCRIPT komutunu ekleyip çalıştırırsanız, hatayı daha kolay izole edebilirsiniz.
  • Bir değişiklik sonrası tüm veriyi yüklemek yerine Dosya|Kısmi Yeniden Yükleme (veya Ctrl+Shift+R kısayoluyla) ile sadece sonradan eklediğiniz kısmı yükleyebilirsiniz. Yapmanız gereken; eğer yeni bir veri ekliyorsanız yeni verinin sorgusunun başına ADD LOAD komutunu eklemek, aynı veriyi bir daha yüklemek istiyorsanız bu verinin sorgusunun başına REPLACE LOAD komutunu ekledikten sonra Kısmi Yeniden Yükleme yapmak.
  • Kısmi yüklemede aynı verinin bir daha yüklenmesini istemiyorsanız sorgunuzun sonuna WHERE satırını ekleyip NOT EXISTS fonksiyonunu kullanmanız gerekir.
İyi çalışmalar..

16 Ağustos 2015 Pazar

QlikView Scripting 6: Gelişmiş Sorgu Yazma ve Veri Modeli İyileştirmesi

  • Rapora yüklediğiniz tablolar birbirleriyle bağlantı kurarak döngü (loop) oluşturabilir. Raporunuzun çalışması için bu döngüyü kırmanız gerekmektedir. Döngüyü kırabilmek için CONCATENATE komutu yardımıyla birkaç tabloyu tek bir tabloda toplayabilirsiniz. CONCATENATE komutuyla birleştireceğiniz tablolar, aynı sayıda ve aynı isimde alanlara sahip olması gerekmektedir.
  • Bir önceki yazıda bahsettiğimiz raporumuzun performansını olumsuz etkileyen Sentez anahtarlarından kurtulabilmek için HASH128 ve AUTONUMBER komutlarından faydalanabiliriz. Örneğin raporumuzun veri modeli aşağıdaki gibi olsun.
$Syn 1 Table isimli Sentez tablosundan kurtulmak için birbirleriyle bağlantı kuran Forecast ve Actual tablolarımızda HASH128 komutunu kullanarak üzerinden bağlantı kurulan BrokerID ve BondID alanlarından özgün bir alan oluşturarak bu alan üzerinden bağlantı kurmaya zorlamalıyız. Bunun için öncelikle her iki tabloda HASH128 komutuyla bu iki alandan oluşan ActualForecastID ismiyle özgün yeni bir alan oluşturuyoruz. Sonrasında her iki tabloda yer alacak bu özgün alanla birlikte üzerinden bağlantı kurduğumuz iki alanı yani BrokerID, BondID ve ActualForecastID alanlarından oluşan ActualForecastBridgeKey ismini verdiğimiz bir tablo oluşturuyoruz. Bu yeni tablomuz, bir açıklama tablosu olacağından diğer tablolarımızdan BrokerID ve BondID alanlarını siliyoruz. Ve veri modelimizde artık Sentez tablosuna yer bulunmamaktadır:
Yaptığımız tüm bu hamleler çalışma dosyamızın sorgu kısmında Main 6 sekmesinde yer almaktadır.
  • Aynı isimli alanlara sahip tabloları raporunuza yüklediğinizde QlikView CONCATENATE komutu varmışcasına otomatik olarak ikinci tabloyu ilk tablo ile birleştirir ve raporunuzda veri tek tabloda toplanır. Eğer bunu engellemek istiyorsanız ikinci tablonuzu yükleyen sorgunun başına NOCONCATENATE komutunu eklemeniz gerekmektedir.
  • Aynı sayıda alana sahip olmayan iki tabloyu birleştirmek istiyorsanız daha az alanı olan ikinci tabloyu yükleyen sorgunun başına CONCATENATE komutunu eklemeniz gerekmektedir. Toplamda her iki tablonun toplam satır sayısı kadar veriniz olur fakat ikinci tabloda olmayan alan, ikinci tablodan gelen veriler yanında NULL (boş) olarak yer alır. QlikView buna force concatenate diyor.
  • Test sonuçları gibi aralıklı açıklama için QlikView'in kullanabileceğimiz bir özelliği var: INTERVALMATCH fonksiyonu. Söz dizimi şu şekildedir:
INTERVALMATCH(aralıkta kontrol edilecek verinin olduğu sütun)LOAD (aralığın başlangıç noktası), (aralığın bitiş noktası)FROM (kaynak)
Örneğin elimizde satış elemanlarına gelen arama sayıları olsun. Arama miktarını aşağıdaki gibi belli aralıklarla performans olarak nitelediğimizi düşünelim:
Satış elemanlarının performanslarını, bu tabloya bakarak kendilerine gelen arama sayılarına göre nitelendirmek istiyoruz. İşte burada devreye INTERVALMATCH fonksiyonu giriyor. Verimizi rapora yükledikten sonra fonksiyonumuzu kullanıyoruz ve çıkan sonuç:
Çalışma dosyasına buradan erişebilirsiniz.
  • Raporunuzda oluşturduğunuz grafikte değerlerin belli formatlarda gösterilmesini isteyebilirsiniz. Örneğin elinizde hergünün arama miktarları var. Kullanıcının seçtiği niteliğe göre (üretkenlik, toplam süre, toplam miktar) grafikte gün kırılımında değerler görünecek. Bunun için QlikView'in data island dediği kavramı kullanıyoruz. Formatlarımızı tutan bir tablo oluyor ve grafiğimizin İfade kısmında bu formatlara göre Set Analysis kuralı yazarak grafğimizi oluşturuyoruz:
If (Metrics = 'Call Quantity', sum(calls), if (Metrics = 'Call Duration', sum(call_time_minutes), sum(calls)/sum(call_time_minutes)))
Çalışma dosyasına buradan erişebilirsiniz.
  • Bir değişken tanımlayarak QVD dosyanızı kaydettiğiniz yeri esnek yapıya dönüştürebilirsiniz. Örnek:
set vSaveQVD = C:\QlikView\QVDs\;STORE Sales into $(vSaveQVD)Sales.qvd(qvd);
  • QVD dosyalarının avantajları:
    • Diğer veri kaynaklarına göre büyük veri setleri için daha hızlı yükleme
    • Increment yüklemeye olanak sağlaması
    • Veri ambarını daha az yorması
    • Tüm QlikView uygulamarı/raporları tarafından  kullanılabilmesi
    • Veri kaynağına göre daha az yer kaplaması
  • QlikView uygulamasını açtıktan sonra Yardım|Başlangıç Sayfasını Göster ekranının En Son kısmında açmak istediğiniz raporun üzerinde sola tıklayıp Veri Olmadan Aç diyerek açmak istediğiniz raporun verisinin memory'ye dolmasını beklemeden yani raporunuzu veri içermeden açabilirsiniz.
İyi çalışmalar..

QlikView Scripting 5: Temel Veri Modeli

  • Raporunuza yüklediğiniz tabloların alacakların şekillerin birbirleriyle kıyaslanması:


  • Kaynak tüketimi, kullanıcı memnuniyeti, model esnekliği ve çalışma süresini göz önüne alınarak değerlendirme yapınca verinin yer aldığı tabloları yandaki gibi yıldıza benzer şekilde yani Star şema formatında rapora yüklemek daha doğru bir tercih oluyor. Star şemanın merkezinde tüm alanları veriyle birlikte içeren ana bir tablo yer alır. Yüklenen açıklamalarının yer aldığı tablolar, ID'ler üzerinden ana tablo ile bağlantı kurar. Böylece  ve denormalize olarak yüklenmiş oluyor.
  • Yüklediğiniz tablolardaki alanlardan birden fazlası aynı isimde ise QlikView otomatik olarak aynı alan isimlerine sahip bu tablolar arasında bağlantı kurabilmek için Sentez anahtarları oluşturur. Ve bu anahtarları oluşturduğı Sentez tablolarında (raporda $Syn adıyla yer alırlar) toplar. Bu istenen bir durum değildir çünkü bu durum hem kötü bir data modeline sebep olmakta hem de raporun performansını düşürmektedir. Sentez anahtar ve tablolarından kurtulmanın yolu, aynı alan isimlerini farklı isimlendirmek veya QUALIFY komutunu kullanmak ve aralarında bağlantı kurulmak istenen tabloların üzerinden bağlantı kurulacak alanlar için AUTONUMBER komutunu kullanarak tek satır özgün bir anahtar alan oluşturmak.
  • Tablo Görüntüleyicisi'nde tabloda bir alanın üzerine fareyi getirerek o alanın ne kadar dolu olduğunu (Bilgi yoğunluğu) ve alanların ne kadar özgün olduklarını (Altküme oranı) görebilirsiniz.
  • Tablo Görüntüleyicisi'nde tablo üzerinde sağ tıklayıp Ön İzleme ile tabloda yer alan ilk 1000 kaydı görebilirsiniz. QVD dosyalarını aktarmadan bunu yapabilmek için QViewer'ı kurmanız gerekmektedir.
  • Ayarlar|Belge Özellikleri...|Tablolar ekranında tabloda yer alan alanların etiketlerini ayarlayabilirsiniz.
İyi çalışmalar..

15 Ağustos 2015 Cumartesi

QlikView Scripting 4: Sorgu Özellikleri ve Fonksiyonları

  • Yeni QlikView oluşturduğunuzda Kod Düzenle ekranında değerlerin (numara, para değeri, tarih) formatı belirlenir. Satır başındaki çekiç işaretine tıklayarak isterseniz bu değerleri değiştirebilirsiniz.
  • Her başarılı bağlantı, kendisinden önceki bağlantıyı keser. Başarılı bir başka bağlantı öncesi bağlantıyı kesmek isterseniz sorgunun kesmek istediğiniz anına denk gelen satırına DISCONNECT komutunu yazmanız yeterlidir.
  • Sorgular, en üstten aşağı ve en sol sekmeden sağa doğru çalışır.
  • Rapora yüklediğiniz iki farklı tabloda aynı isimle alanlar var ise bu iki tablo arasında bu iki alan üzerinden bağlantı kurulur. Bağlantı kurulmasını istemiyorsanız bu tablolardan birinde yer alan ve bağlantı kuran alanın ismini değiştirmeniz gerekmektedir.
  • Eğer aynı alan ismini birden fazla tabloda kullanmakta ısrarcıysanız QUALIFY komutunu kullanabilirsiniz. 
Aşağıdaki sorgu sonucunda yandaki gibi alan isimlerine sahip bir tablo oluşacak:
QUALIFY *;
UNQUALIFY Priority, Stage;
DefectTable:
LOAD * INLINE [
Defect, Group, Priority, Stage
1, Reports, High, Queued
2, Data, Low, Reported
3, Data, High, Closed
4, Object, Medium, Rejected
5, Security, High, Reported
6, System, Medium, Rejected
7, Security, High, Closed];
Bu sayede alan isimleri başında tablo ismiyle birlikte yer alacağından bir başka tablodaki aynı isimli alanla bağlantı kurmayacak.
  • Raporunuza birden fazla tablo yüklemiş ve her birinin alan ismini değiştirmekle uğraşmak istemiyor veya değiştirmek istediğiniz alanlar ile yeni alan isimlerini bir yerde toplayıp alan isim değişikliği yapmak istiyorsanız QlikView'in MAPPING özelliğini RENAME FIELD komutuyla kullanarak hızlı çözüm üretebilirsiniz.

Raporumuza yüklediğimiz tablolardaki tüm alanların isimlerini ayrı bir tabloda topladık ve karşılarına yeni isimlerini yazdık. Sonrasında bu tabloyu raporumuza yükleyip RENAME FIELD komutunu kullanarak tek seferde istediğimiz alan isimlerini verebiliriz:
Map_Table:
MAPPING LOAD 
DATA_FIELD_NAME, 
DISPLAY_FIELD_NAME
FROM Mapping_Fields.QVD (QVD);
RENAME FIELDS USING Map_Table;
  • QlikView'de sorgular üzerinde kullanabileceğiniz bazı komutlar:
    • if…then…elseif…else…end if
    • For…next
    • For each…next
    • Do…loop
    • Switch…case…default…end switch
    • Exit script
    • Sub…end sub
    • Call
İyi çalışmalar..

Standart Tabloları: Bir Sütundaki Değerleri Ayrı Sütunlara Çevirmek


Elimizdeki veri ile uğraşırken zaman zaman sütun başlıklarını satıra, satırlarının her birini ayrı bir sütuna dönüştürme ihtiyacı duyuyoruz. Sütun başlıklarını satıra çevirmek için bir önceki yazımda anlattığım Dosya Sihirbazı'nı kullanabiliyoruz. Fakat sütunda yer alan değerlerin her birini ayrı bir sütuna çevirmek için orijinal adıyla Generic table veya diğer ismiyle Standard table'lar oluşturmamız gerekiyor.

Örneğin elimizde yukarıdaki resimdeki gibi bir veri olsun. Ve biz Stage sütununu satırlara çevirmek (yani tabloya beş yeni sütun -queued, reported, closed, rejected ve verified- eklemek) istiyoruz. Yani elimizdeki veriyi aşağıdaki tabloya dönüştüreceğiz.

Elimizdeki veriyi raporumuza ekleyelim. Tablonun INLINE sorgusu aşağıdaki gibidir:
DefectTable:
LOAD * INLINE [
Defect, Group, Priority, Stage
1, Reports, High, Queued
2, Data, Low, Reported
3, Data, High, Closed
4, Object, Medium, Rejected
5, Security, High, Reported
6, System, Medium, Rejected
7, Security, High, Closed
8, Object, Low, Queued
9, Data, Medium, Closed
10, Requirements, Medium, Verified];

Veriyi aktardıktan sonra satırlara çevireceğimiz sütunun her değeri için ayrı bir tablo oluşturuyoruz. Bunun için  QlikView'in GENERIC LOAD özelliğini kullanacağız.
QlikView GENERIC LOAD'un sözdizimi şu şekildedir:
GENERIC LOAD 
   [diğer tablolarla bağlantı kurduracak anahtar alan],
   [değerleri sütunlara çevrilecek sütun adı],
   [yeni sütunların değerleri]
FROM/RESIDENT [kaynak]
Bizim verimize göre GENERIC LOAD sorgumuz şu şekilde olacak:
Workflow:
GENERIC LOAD 
   Defect, 
   Stage, 
   'x' 
RESIDENT DefectTable;
Sonrasında soldaki resimde olduğu gibi her bir sütun değeri için ayrı bir tablo olarak 5 artı kaynak tablomuz olmak üzere toplamda 6 tablomuz olacak.

Her bir sütun değerini ayrı bir sütun yapmak için yola çıkmıştık. Evet, şimdi her bir değerimizin yer aldığı tabloyu ana tablomuzla birleştirerek istediğimiz formatta tek bir tablo elde edeceğiz.
Bunun için tek tek her bir bir değer tablosunu ana tablomuz için LEFT JOIN yapıyoruz:
FOR t = 0 to NoOfTables()
TableList:
LOAD 
   TableName($(t)) as Tablename
   AUTOGENERATE 1
WHERE WildMatch(TableName($(t)), 'Workflow.*');
NEXT t
FOR t = 1 to FieldValueCount('Tablename')
LET vTable = FieldValue('Tablename', $(t));
LEFT JOIN (DefectTable) 
LOAD * 
RESIDENT $(vTable);
DROP TABLE $(vTable);
NEXT t
DROP TABLE TableList;
Ve istediğimiz gibi, en başta elimizdeki verinin Stage sütununda yer alan her bir değeri ayrı bir sütuna çevirmeyi başardık!

İyi çalışmalar..

QlikView Scripting 3: Dışarıdan Yüklenen Verinin Dönüşümü

Bildiğiniz gibi QlikView raporunuza XLS, XLSX, CSV, TXT XML ve HTML formatındaki bir dosyada yer alan veriyi aktarabilirsiniz. Bu veriyi aktarırken gereksiz kısımları silmek veya verinin şekil formatını değiştirmek gibi bazen veride dönüşüm yapmaya ihtiyacınız oluyor. Dosya Sihirbazı ekranı, yüklediğiniz dosyada yapmak istediğiniz tüm bu değişiklikler için size imkan veriyor.
Peki dosyayı nasıl yükleyecek ve bu ekrana nasıl ulaşacağız? Kod Düzenle ekranının alt kısmında yer alan panelin Veri sekmesinde Tablo Dosyaları...'na tıklayarak yüklemek istediğimiz dosyayı seçeriz.
Dosyayı seçip tamam dediğimizde Dosya Sihirbazı ekranı karşımıza çıkar. Karşımıza çıkan bu ilk ekrandaki kısımlarda yaptığımız seçimlerin yüklediğimiz tabloya etkisini de Dosya Sihirbazı ekranında görebiliyoruz.

  • Dosya Türü kısmında, yüklediğimiz dosyanın türünü bir daha bize teyit ettiriyor. 
  • Tablolar kısmında, dosyadaki hangi tabloyu yüklemek istediğimizi seçtiriyor. 
  • Üstbilgi Boyutu kısmında, seçtiğimiz tablonun üstten kaçıncı satır ile veri almaya başlamasını belirliyoruz.
  • Etiketler kısmında, sütunların isimlerinin ne olmasına (dosyada yer aldığı gibi mi yoksa sırasıyla rastgele başlık mi atansın) karar veriyoruz. Eklenmiş Etiketler'i seçersek dosyanın ilk satırını sütun isimleri olarak görüyor. Hiçbiri'ni seçersek ilk satırın üstüne bir satır daha ekleyip sırasıyla rastgele başlık atıyor ve tablonun ilk satırı, diğer satırlar gibi veri değerlerinin yer aldığı satır haline geliyor.
Akabinden Sonraki diyerek devam ediyoruz. Karşımıza çıkan ekranda Dönüştürme Adımını Etkinleştir'i seçerek yüklediğimiz verinin şeklinde yapmak istediğimiz değişiklikleri yapabileceğimiz ekrana ulaşıyoruz. Bu ekranda seçimler yaparak istediğiniz veya belli bir kurala uymayan satırları silebilir, veya belli bir kural ile boş kısımları doldurabilir, yeni sütun ekleyebilir veya tabloyu sağa/sola istediğiniz tarafa çevirebilirsiniz.
Sonraki diyerek devam ettiğimizde karşımıza çıkan ekranda tüm yaptıklarımız sonrasında yüklediğimiz tablonun durumunu kontrol edip yine Sonraki dediğimizde yaptığımız tüm değişiklikleri tabloya yansıtarak tabloyu raporumuza aktarmamızı sağlayacak sorguyla karşılaşırız. Son dediğimizde sorgu, raporumuzda Kod Düzenle ekranına eklendiğini görürüz.

İyi çalışmalar..

QlikView Scripting 2: Sorgu Yazmak

Merhaba,
Sorgu (terminolojide SQL), QlikView uygulamasının kalbidir. Kaynağınızdan veriyi sorgu yardımıyla raporunuza aktarırsınız. Kaynağınızın çeşidine (Oracle, Teradata, MS SQL Server, MS Access..) uygun sorgu yazmanız gerekmektedir; yani çalışmasını istediğiniz sorgu, veri tabanınızın SQL programında da çalışabilir olması gerekiyor. QlikView'in sorgu ekranını basit bir SQL programı olarak düşünebilirsiniz.
  • QlikView raporunuzun sorgusunu Kod Düzenle ekranından (Ctrl+E kısayoluyla da ulaşabilirsiniz) düzenleyebilirsiniz.
  • Kod Düzenle ekranını ilk açtığınızda default genel numara, para, zaman ve tarih genel ayarlarının kodları sizi karşılar.
  • Kullanıcılardan sorguyu gizlemenizi sağlayacak Gizli Kod özelliği var. Özellikle güvenlik kaygısıyla Section Access kodlarını gizlemek için kullanabilirsiniz.
    • Kod Düzenle ekranında Dosya|Gizli Kod Oluştur... ile gizlemek istediğiniz sorgular için bu özelliği kullanabilirsiniz.
    • Gizli Kod her zaman sekmelerin en solunda yer alır. Yani tüm diğer sekmelerden önce çalışır. Ayrıca çalışırken ekranda bu sorguya ait herhangi birşey göremezsiniz ve bu kısım loglanmaz.
    • Başka bir QlikView dosyasındaki veriyi Gizli Kod ile yüklemeyemezsiniz (Binary Load).
  • Kod Düzenle ekranında Dosya|Dış Kod Dosyası Aç'ı seçerek .qvs veya .txt formatında kaydedilmiş bir sorguyu raporunuzda açabilirsiniz.
  • Raporda Ayarlar|Kulllanıcı Tercihleri|Kaydet ekranında Yeniden Yüklemeden Önce Kaydet'i seçerek rapor her yüklemenizden önce otomatik olarak kaydedebilirsiniz.
  • Raporunuzda Dosya|Tablo Görüntüleyicisi'yi (Ctrl+T kısayoluyla da ulaşabilirsiniz) seçerek sorguyla oluşturduğunuz tabloları ve tabloların birbirleriyle ilişkilerini görebilirsiniz.
  • Kod Düzenle ekranında Düzenle|Yorum veya Düzenle|Yorumu Kaldır ile sorgudaki herhangi bir satırı hızlıca yoruma çekebilir veya yorumdan kaldırabilirsiniz.
  • Kod Düzenle ekranında Ekle|Ortam Değişkenleri ile yeni dosyanın sorgu kısmında default olarak gelen değerlerin formatlarını ekleyebilirsiniz.
  • Kod Düzenle ekranında Ekle|Include Deyimi ile tekrar tekrar kullanacağınız bir sorguyu sorgunuza ekleyebilirsiniz. Bunun güzelliği, eklediğiniz sorgunun kaynağını değiştirdiğinizde otomatik olarak bu sorgunuzda da değişecek.
  • Kod Düzenle ekranında Ekle|Yükle Deyimi ile var olan bir tablonuzu sorguya aktarabilir veya açılacak pencereyle excelde tablo oluşturur gibi sorgunuz için tablo oluşturabilirsiniz.
  • Kod Düzenle ekranında Ekle|Bölüm Erişimi ile raporunuza erişim güvenliği oluşturabilirsiniz. Bu kısmın özel bir adı var: Section Access. Bu konuyu bir başka yazımda daha detaylı inceleyeceğim.
  • QlikView'de farklı sekmelere yazdığınız sorgular sol baştan başlayarak çalışır.
  • Kod Düzenle ekranında Sekme|Öncekiyle Birleştir... ile iki farklı sekmedeki sorgunuzu önce olan sekmede bir araya getirip sonraki sekmeyi silmiş olursunuz.
  • Kod Düzenle ekranında Araçlar|Söz Dizimi Kontrolü ile sorgunuzu çalıştırmadan önce doğruluğunu kontrol edebilirsiniz.
  • Sorgu ekranın alt kısmında bulunan panelin Fonksiyonlar kısmında sorgunuzda kullanabileceğiniz tüm fonksiyonları kategorize edilmiş halde bulabilir ve kolayca sorgunuza kopyalayabilirsiniz. Fonksiyonların adlarının alt kısmında kullanım örnekleri bulunmaktadır.
  • Sizden sonra raporunuz üzerinde çalışanlara kolaylık olması için sorgunuza üç şekilde yorum ekleyebilirsiniz:
    • REM ve ; [noktalı virgül] arasına istediğiniz formatta yorumunuzu yazabilirsiniz
    • Yorumunuzu yazar, sonrasında yorumunuzun yer aldığı her satırının başına //  [iki taksim işareti] eklersiniz
    • Veya yorum olarak yazdığınız kısmı seçip Düzenle|Yorum ile kolayca yorum haline getirebilirsiniz
  • Sorgularınızı sekmelere ayırma kuralı size kalmış. Ben veri kaynağını ve raporun ara yüzünü esas alarak sorgumu sekmelere ayırıyorum.