Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Przykłady stanów alternatywnych w wyrażeniach wykresu

Te przykłady mają w zamierzeniu pokazywać najlepsze praktyki dotyczące użycia stanów alternatywnych przez programistów i/lub najbardziej zaawansowanych użytkowników programu QlikView. Przedstawione przykłady można znaleźć w pliku: Alternate States Functionality.qvw

Synchronizowanie selekcji między stanami

Poniższych wyrażeń można użyć w pojedynczym wykresie:

  • count({$} DISTINCT [Invoice Number])
  • count({State1} DISTINCT [Invoice Number])
  • count({State2} DISTINCT [Invoice Number])

Z tą metodą związany jest pewien problem; programista QlikView musi powielić selekcje (listy wartości i obiekty Multi Box) dla wszystkich trzech stanów, aby użytkownicy mogli dokonać właściwych selekcji dotyczących różnych stanów. W wielu sytuacjach programista QlikView będzie chciał mieć zestaw „wspólnych” selekcji dostępnych dla wszystkich stanów. Umożliwi to użytkownikowi końcowemu ustawienie kontekstu dla różnych wykresów, a następnie skorzystanie z określonych selekcji, aby pokazać różnice między stanami. Aby zapewnić spójność określonych selekcji w różnych stanach, można użyć analizy zestawów.

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

Programista QlikView zachowa selekcje wartości miesiąca i roku w stanie State1 i State2 zsynchronizowane z selekcjami wartości miesiąca i roku w stanie default. Programista QlikView może w razie potrzeby dodawać elementy do modyfikatorów zestawów, aby zapewnić spójność jeszcze większej liczby pól między stanami.

Operatory zestawów

Można użyć operatorów zestawów (+, *, -, /) ze stanami. Następujące wyrażenia są prawidłowe i będą liczyć odrębne numery faktur będące w stanie default lub stanie State1.

Przykłady:  

  • count({$ + State1} DISTINCT [Invoice Number])

    liczy odrębne numery faktur zawarte w sumie stanów <default> i State1.

  • count({1 - State1} DISTINCT [Invoice Number])

    liczy odrębne numery faktur ze stanem innym niż State1.

  • count({State1 * State2} DISTINCT [Invoice Number])

    liczy odrębne numery faktur, które są zarówno w stanie <default>, jak i stanie State1.

Informacja Używając operatorów zestawów w taki sposób, należy zachować ostrożność. W niektórych przypadkach można otrzymać wynik inny od oczekiwanego. Wynika to z faktu, że selekcje w danym stanie generują zestaw danych, który może nie być całkowicie zgodny z zestawem lub zestawami, z którymi jest łączony. Ten problem staje się bardziej oczywisty w miarę wzrostu złożoności modelu danych.

Niejawne definicje wartości pól

Operatorów zestawów można także używać z funkcjami elementów P() i E(). Funkcje te są dostępne tylko w obrębie wyrażeń zestawów.

Przykłady:  

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

    To wyrażenie liczy odrębne numery faktur w stanie <default> na podstawie możliwych numerów faktur dostępnych w stanie State1.

Jest ono bardzo podobne do następującego wyrażenia:

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

Różnica między wyrażeniami polega na tym, że w pierwszym możliwe wartości numeru faktury ze stanu State1 są przekazywane do stanu default. W drugim wyrażeniu wybrane wartości ze stanu State1 są przekazywane do stanu default. Jeśli użytkownik nie wybrał żadnego numeru faktury w stanie State1, żadne wartości numerów faktur nie zostaną przekazane do stanu default.

Operatorów zestawów najlepiej używać w obrębie modyfikatorów zestawów. Poniższe wyrażenie znajduje przecięcie możliwych numerów faktur ze stanu State1 i State2 i przekazuje te wartości do numerów faktur w stanie default.

Przykłady:  

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

Wyrażenie znajdujące przecięcie numerów faktur w stanie <default> i State1 to:

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

To wyrażenie może wydawać się mylące, ponieważ używa stanu (w tym przykładzie <default>) zarówno w funkcji elementu, jak i w identyfikatorze zestawu. Należy pamiętać, że funkcja elementu p($) zwraca możliwe wartości w stanie default. Identyfikator zestawu/stanu {$} jest modyfikowany przez wynik funkcji elementu. Wszystkie selekcje faktur istniejące obecnie w stanie default są zastępowane wartościami z przecięcia funkcji elementu.

Należy pamiętać, że powyższe wyrażenie w dalszym ciągu nie jest całkowicie poprawne, ponieważ nie udaje mu się zsynchronizować wspólnych selekcji między stanami default a State1. Poniżej znajduje się wyrażenie, które wykonuje tę operację:

Przykłady:  

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

Jak poprzednio programista QlikView może dodać pola do modyfikatora, aby zapewnić spójność selekcji między różnymi stanami.

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com