Grafik İfadelerindeki Alternatif Durumlara örnekler

Bu örnekler, alternatif durumların QlikView Geliştiricileri ve/veya üst seviye QlikView İleri Kullanıcıları tarafından kullanımına ilişkin en iyi uygulamaları göstermeyi amaçlamaktadır. Bu örnekler şu dosyada bulunabilir: ‘Alternate States Functionality.qvw’

Durumlar Arasındaki Seçimlerin Eşitlemesi

Aşağıdaki ifadeler tek bir grafikte kullanılabilir:

count({$} DISTINCT [Invoice Number])

count({State1} DISTINCT [Invoice Number])

count({State2} DISTINCT [Invoice Number])

Bu yöntemle ilgili bir sorun bulunmaktadır: Son kullanıcının çeşitli durumlar için uygun seçimleri yapabilmesi amacıyla, QlikView Geliştiricisi üç durumun tümü için seçimleri (liste kutuları ve çoklu kutular) çoğaltmalıdır. Birçok durumda, QlikView Geliştiricisi tüm durumlar için kullanılabilen bir 'ortak' seçimler kümesine sahip olmak isteyecektir. Bu, son kullanıcının çeşitli grafikler için bağlam ayarlamasını ve ardından farklı durumlar arasındaki farkları göstermek için belirli seçimlerden faydalanmasını sağlar. Durumlar arasında belirli seçimlerin tutarlılığı sağlamak için Set Analysis durumlarla birlikte kullanılabilir.

count({State1<Year = $::Year, Month = $::Month>} DISTINCT [Invoice Number])

count({State2<Year = $::Year, Month = $::Month>} DISTINCT [Invoice Number])

QlikView Geliştiricisi, State1 ve State2 durumlarındaki Year ve Month seçimlerinin varsayılan durum'daki Year ve Month seçimleriyle eşitlemesini korur. QlikView Geliştiricisi, durumlar arasında daha fazla sayıda alanı tutarlı tutmak için küme değiştiricilerine gerektiği gibi elementler ekleyebilir.

Küme İşleçleri

Küme işleçleri (+, *, -, /) durumlarla birlikte kullanılabilir. Aşağıdaki ifadeler geçerlidir ve varsayılan durum içinde veya State1 durumu içinde olan tekil fatura numaralarını sayar.

Örnekler:  

count({$ + State1} DISTINCT [Invoice Number])
<varsayılan> durum ve State1 birleştirmesinde bulunan tekil fatura numaralarını sayar.

count({1 - State1} DISTINCT [Invoice Number])
State1 durumunda olmayan tekil fatura numaralarını sayar.

count({State1 * State2} DISTINCT [Invoice Number])
hem <varsayılan> durum içinde hem de State1 durumu içinde tekil fatura numaralarını sayar.

Note: Küme işleçleri bu şekilde kullanılırken dikkatli olunmalıdır. Bazı durumlarda, sonuç beklendiği gibi olmaz. Bunun nedeni, verilen bir durumdaki seçimlerin oluşturacağı veri kümelerinin birleştirildiği kümelerle tam uyumlu olmayabilmesidir. Bu, özellikle veri modelinin karmaşıklığının artığı durumlar için geçerlidir.

Örtük Alan Değeri Tanımları

Küme işleçlerini kullanmanın bir başka yolu da, P() ve E() element fonksiyonlarıdır. Bu fonksiyonlar yalnızca küme ifadeleri içinde kullanılabilir.

Örnekler:  

count({$<[Invoice Number] = p({State1} [Invoice Number])>} DISTINCT [Invoice Number])
Bu ifade State1 durumunda bulunan olası fatura numaralarına göre <varsayılan> durumdaki tekil fatura numaralarını sayar.

Bu, tam olarak olmasa da neredeyse aşağıdaki ifadeye eşittir:

count({$<[Invoice Number] = State::[Invoice Number]>} DISTINCT [Invoice Number])

İfadeler arasındaki fark şudur: Birinci ifadede, State1 durumundan gelen fatura numarasındaki olası değerler varsayılan durum'a aktarılır. İkinci ifadede, State1 durumundan seçilen değerler varsayılan durum'a aktarılır. Kullanıcı State1 durumunda herhangi bir fatura numarası seçimi yapmadıysa, varsayılan durum'a herhangi bir fatura numarası değeri aktarılmaz.

Küme işleçleri en iyi şekilde küme değiştiricileri içinde kullanılır. Aşağıdaki ifade, State1 ve State2 durumlarını olası fatura numaralarının kesişim noktasını bulur ve bu değerleri varsayılan durum'daki fatura numaralarına aktarır.

Örnekler:  

count({$<[Invoice Number] = p({State1} [Invoice Number]) * p({State2} [Invoice Number])>} DISTINCT [Invoice Number])
<varsayılan> ile State1 içindeki fatura numaralarının kesişimini bulacak ifade:

count({$<[Invoice Number] = p({$} [Invoice Number]) * p({State1} [Invoice Number])>} DISTINCT [Invoice Number])

Bir durumu (bu örnekte <varsayılan>) hem element fonksiyonunda ve hem de bir küme tanımlayıcısında kullandığından, bu ifade kafa karıştırıcı görünebilir. p($) element fonksiyonunun varsayılan durum'daki olası değerleri verdiğini unutmayın. {$} küme/durum tanımlayıcısı, element fonksiyonlarının sonucu tarafından değiştirilir. Varsayılan durum'da o anda mevcut tüm fatura seçimleri, element fonksiyonlarının kesişiminden gelen değerlerle geçersiz kılınmaktadır.

varsayılan durum ve State1 arasındaki ortak seçimleri eşitlemede başarısız olduğundan, yukarıdaki ifadenin yine de tamamen doğru olmadığı dikkate alınmalıdır. Bunu yapacak ifadeyse aşağıdadır:

Örnekler:  

count({$<[Invoice Number] = p({$} [Invoice Number]) * p({State1<Year = $::Year, Month = $::Month>} [Invoice Number])>} DISTINCT [Invoice Number])

Önceden olduğu gibi, QlikView Geliştiricisi çeşitli durumlar arasında seçimlerin tutarlılığını korumak için değiştiriciye alanlar ekleyebilir.