unless öneki ve soneki bir deyimin veya bir çıkış cümlesinin değerlendirilip değerlendirilmemesi gerektiğini belirleyen koşullu bir cümle oluşturmak için kullanılır. Bu, uzun if..end if deyiminin kısa bir alternatifi olarak da görülebilir.
statement veya exitstatement ancak conditionFalse olarak değerlendirilirse yürütülür.
unless öneki, ek when veya unless önekleri de dahil olmak üzere, bir veya birden fazla başka deyime zaten sahip olan deyimlerde kullanılabilir.
Bağımsız Değişkenler
Bağımsız Değişken
Açıklama
condition
True veya False olarak değerlendirilen bir mantıksal ifade.
statement
Kontrol ifadeleri dışında herhangi bir Qlik Sense kod deyimi.
exitstatement
Bir exit for, exit do veya exit sub cümlesi ya da bir exit script deyimi.
Ne zaman kullanılır?
Unless deyimi bir Boole sonucu döndürür. Genellikle bu tür bir fonksiyon, kullanıcı komut dosyasının parçalarını koşullu olarak yüklemek veya dışlamak istediğinde, koşul olarak kullanılır.
Aşağıdaki satırlarda Unless fonksiyonunun nasıl kullanılabileceğine ilişkin üç örnek gösterilir:
exit script
unless A=1;
unless A=1
LOAD * from myfile.csv;
unless A=1
when B=2 drop table Tab1;
Bölgesel ayarlar
Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: AA/GG/YYYY. Tarih formatı, veri yükleme kodunuzda SET DateFormat deyiminde belirtilir. Varsayılan tarih formatı, bölgesel ayarlarınız ve diğer unsurlar nedeniyle sisteminizde farklı olabilir. Aşağıdaki örneklerdeki formatları ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz. Dilerseniz yükleme kodunuzdaki formatları aşağıdaki örneklere uyacak şekilde değiştirebilirsiniz.
Uygulamalardaki bölgesel ayarlarda Qlik Sense'in yüklü olduğu bilgisayarın veya sunucunun bölgesel sistem ayarları temel alınır. Eriştiğiniz Qlik Sense sunucusu İsveç olarak ayarlıysa, Veri yükleme düzenleyicisi tarihler, saat ve para birimi için İsveç bölgesel ayarlarını kullanır. Bu bölgesel format ayarları, Qlik Sense kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Sense, kullandığınız tarayıcıyla aynı dilde görüntülenir.
Örnek 1 – Unless ön eki
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
1 değeri verilmiş A değişkenini oluşturma.
Transactions adlı tabloya yüklenen bir veri kümesi (değişken A = 2 olmadığı sürece).
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
amount
Sonuçlar tablosu
id
date
amount
1
08/30/2018
23.56
2
09/07/2018
556.31
3
09/16/2018
5.75
4
09/22/2018
125.00
5
09/22/2018
484.21
6
09/22/2018
59.18
7
09/23/2018
177.42
Komut dosyasının başında A değişkenine 1 değeri atandığından, Unless ön ekini izleyen koşul değerlendirilir ve FALSE sonucu döndürülür. Sonuç olarak komut dosyası Load deyimini çalıştırmaya devam eder. Sonuçlar tablosunda, Transactions tablosundan gelen tüm kayıtlar görülebilir.
Bu değişken değeri 2'ye eşit olacak şekilde ayarlanırsa, veri modeline hiçbir veri yüklenmez.
Örnek 2 – Unless son eki
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.
Komut dosyası başlangıç olarak ilk veri kümesini Transactions adlı tabloya yükler. Ardından, Transactions tablosunda 10'dan az kayıt olmadığı sürece komut dosyası sonlandırılır.
Bu koşulun sonucunda komut dosyası sonlandırılmazsa, Transactions tablosuyla bir işlem kümesi daha birleştirilir ve bu işlem böyle tekrarlanır.
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
id
date
amount
Sonuçlar tablosu
id
date
amount
1
08/30/2018
23.56
2
09/07/2018
556.31
3
09/16/2018
5.75
4
09/22/2018
125.00
5
09/22/2018
484.21
6
09/22/2018
59.18
7
09/23/2018
177.42
8
10/01/2018
164.27
9
10/03/2018
384.00
10
10/06/2018
25.82
11
10/09/2018
312.00
12
10/15/2018
4.56
13
10/16/2018
90.24
14
10/18/2018
19.32
Komut dosyasının üç veri kümesinden her birinde yedi kayıt vardır.
İlk veri kümesi (1 ile 7 arasında id işlemini içerir) uygulamaya yüklenir. Unless koşulu, Transactions tablosunda 10'dan az satır olup olmadığını değerlendirir. Bu TRUE olarak değerlendirilir ve bu nedenle ikinci veri kümesi (8 ile 14 arasında id işlemini içerir) uygulamaya yüklenir. İkinci Unless koşulu, Transactions tablosunda 10'dan az kayıt olup olmadığını değerlendirir. Bu FALSE olarak değerlendirilir ve bu nedenle komut dosyası sonlandırılır.
Örnek 3 – Birden fazla Unless ön eki
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.
Bu örnekte, tek işlem içeren bir veri kümesi Transactions adlı tablo olarak oluşturulur. Ardından 'for' döngüsü tetiklenir ve bu döngüde iç içe iki unless deyimi değerlendirilir:
Transactions tablosunda 100'den fazla kayıt olmadığı sürece
Transactions tablosundaki kayıtların sayısı 6'nın katları olmadığı sürece
Bu koşullar FALSE olduğunda, yedi kayıt daha oluşturulur ve mevcut Transactions tablosuyla birleştirilir. İki işlemden biri TRUE değerini döndürene kadar bu işlem tekrarlanır.
Komut dosyası
Transactions:
Load
0 as id
Autogenerate 1;
For i = 1 to 100
unless NoOfRows('Transactions') > 100 unless mod(NoOfRows('Transactions'),6) = 0
Concatenate
Load
if(isnull(Peek(id)),1,peek(id)+1) as id
Autogenerate 7;
next i
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:id.
Sonuçlar tablosu
id
0
1
2
3
4
5
+30 satır daha
'for' döngüsündeki iç içe yerleştirilmiş unless deyimleri şunları değerlendirir:
Transactions tablosunda 100'den fazla satır var mı?
Transactions tablosundaki kayıtların toplam sayısı 6'nın katlarından biri mi?
Her iki unless deyimi de FALSE değerini döndürdüğünde, yedi kayıt daha oluşturulur ve mevcut Transactions tablosuyla birleştirilir.
Bu deyimler beş kez FALSE değerini döndürür ve bu noktada Transactions tablosunda toplam 36 veri satırı vardır.
Bundan sonra, ikinci Unless deyimi TRUE değerini döndürür ve dolayısıyla bunu izleyen LOAD deyimi artık yürütülmez.
Bu sayfa size yardımcı oldu mu?
Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!