Posts Tagged ‘ loop

QlikView’de döngü kurmak

Merhaba

Yeni firmam da QlikView kullanılmakta. Bende yavaş yavaş kullanmaya başladım. Çok güçlü ve esnek bir raporlama aracı. Kullanan herkesten olumlu yorumlar duydum. Henüz ax’a bağlanıp rapor yapmadım. Ancak bir çok raporu qlikView’de yapacağız gibi görünüyor. Yeri geldikçe ax’ta yaptığım raporları paylaşacağım.

Bu yazımda QlikView’de nasıl döngü kurulur bir örnekle anlatmaya çalışacağım. Bir log yapısı düşünün. Her gün için bir dosya oluşturuyor. Bir liste sayfasında da bu dosyaları isimlerine ve tarihlerine göre listeliyor.

Liste dosyasının adresi şöyle “http://192.168.100.111/correlated/”. Dosyaların adresi  ise bu listedeki Name alanının bu adrese eklenmesi ile oluşuyor. “http://192.168.100.111/correlated/5651_correlated_2012-09-21″. Resimde olduğu gibi.

Yapmak istediğim şey tek tek değilde listeyi dolanıp bütün alt dosyalardaki veriyi tek bir seferde çekebilmek. Bunun için şöyle bir kod yazdım.

//======================= FD ======================//
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='#.##0,00 TL;-#.##0,00 TL';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD.MM.YYYY';
SET TimestampFormat='DD.MM.YYYY hh:mm:ss[.fff]';
SET MonthNames='Oca;Şub;Mar;Nis;May;Haz;Tem;Ağu;Eyl;Eki;Kas;Ara';
SET DayNames='Pzt;Sal;Çar;Per;Cum;Cmt;Paz';

// ================================================//

Sub LoadTableNames
SQLTableList:
LOAD F1,
     Name,
     [Last modified],
     Size,
     Description
FROM
[http://192.168.100.111/correlated/]
(html, codepage is 1254, embedded labels, table is @1);

End Sub;

// ===============================================//

Call LoadTableNames;

// ===============================================//

Let vTableCount = NoOfRows('SQLTableList');

// ===============================================//

Sub LoadTableData
For i = 2 To $(vTableCount)-1
LET vMyTableName = Peek('Name', $(i), ‘SQLTableList’);
a:
LOAD @1,
     @2,
     @3,
     @4,
     @5,
     @6,
     @7,
     @8,
     @9,
     @10
FROM
[http://192.168.100.111/correlated/$(vMyTableName)]
(txt, codepage is 1254, no labels, delimiter is ' ', msq);
Next i

End Sub;

// ==============================================//

Call LoadTableData;

// ==============================================//

Selamlar.