Pola wejściowe
QlikView obsługuje specjalny typ pola, które można zmienić bez wykonywania skryptu, pole wejściowe.
Pole wejściowe różni się od innych pól w aplikacji QlikView tylko tym, że wartości wczytane do niego ze skryptu można później zmieniać bez ponownego uruchamiania skryptu. Pól wejściowych można używać we wszelkiego rodzaju obiektach arkusza, podobnie jak wszystkich innych pól.
Jeśli używane są pola wejściowe, skrypt tworzy dla poszczególnych wartości takich pól symbole zastępcze, dzięki którym można później wprowadzać inne dane. Każde pole można określić jako pole wejściowe, wskazując je w instrukcji skryptu inputfield przed jego użyciem w instrukcji LOAD lub SELECT.
Wartości pola wejściowego można zmieniać w komórkach listy wartości, okna tabeli i wyrażenia wykresu tabelarycznego. Edytować można tylko te listy wartości i kolumny tabel, które zawierają pola wejściowe. Umieszczenie wskaźnika myszy nad edytowalną komórką spowoduje wyświetlenie ikony wprowadzania. Kliknięcie ikony powoduje ustawienie komórki w trybie edycji danych wejściowych. W celu przechodzenia między komórkami, gdy aktywny jest tryb edycji danych wejściowych, możliwe jest używanie klawiszy strzałek w górę/w dół. Każdorazowe podanie nowych wartości powoduje automatyczne przeliczenie całego dokumentu QlikView.
Komórka wyrażenia wykresu tabelarycznego może zawierać funkcję agregacji specjalnego pola wejściowego, a mimo to umożliwiać wprowadzanie do niej danych. Wprowadzona zmiana zostanie przekazana z powrotem do wartości pól bazowych według wstępnie zdefiniowanych algorytmów, np. rozdzielania równego lub rozdzielania proporcjonalnego.
Można określić zmianę względną.
Stosowana jest następująca składnia, gdzie n jest liczbą:
Składnia | Opis |
---|---|
%+n | zwiększa bieżącą wartość o n% |
%-n | zmniejsza bieżącą wartość o n% |
+=n | zwiększa bieżącą wartość o n |
-=n | zmniejsza bieżącą wartość o n |
*=n | mnoży bieżącą wartość przez n |
/=n | dzieli bieżącą wartość przez n |
Przykład:
%+10 zwiększa bieżącą wartość o 10%.
+=56 zwiększa bieżącą wartość o 56.
*=2 mnoży bieżącą wartość przez 2.
/=2 dzieli bieżącą wartość przez 2.
/=0 nie powoduje żadnych zmian.
Dostępne są też interfejsy API automatyzacji do programowego wyodrębniania i ustawiania wartości.
Ograniczenia
- Pole obliczane i pole klucza nie mogą być polami wejściowymi. Opcja ustawienia jako pole wejściowe jest automatycznie wyłączana.
- Pola wejściowe nie nadają się do przechowywania dużych ilości danych, ponieważ dane są w nich zapisywane znacznie mniej wydajnie niż w przypadku zwykłych pól.
- Klucz między polem wejściowym a polem logicznym musi być unikatowy i nie może zawierać zduplikowanych wartości.
Przykład pola wejściowego
W tym przykładzie dodaje się pole wejściowe do danych i pokazuje, jak można interaktywnie aktualizować wartości.
-
Załaduj następujące dane w skrypcie ładowania.
Inputfield Value;
Table1:
LOAD * INLINE
[
Key, Attribute, Value
Bob, Jan, 100
Bob, Feb, 200
Bob, Mar, 300
Kate, Jan, 400
Kate, Feb, 500
Kate, Mar, 600
];
- Po załadowaniu danych utwórz pole tabeli i dodaj wszystkie trzy pola.
-
Utwórz wykres tabeli prostej i dodaj Key jako wymiar. Dodaj następujące wyrażenia:
- Sum(Value)
- InputSum(Value)
Oba wyrażenia pokażą tę samą wartość, ale w tabeli prostej można zaktualizować tylko InputSum(Value), a nie Sum(Value).
Możesz teraz zmieniać Value interaktywnie w polu tabeli. Zagregowane wartości wyrażeń w tabeli prostej zostaną odpowiednio zaktualizowane.
Możesz również zaktualizować wartości wyrażenia InputSum(Value) w tabeli prostej. Bazowe wartości zostaną zaktualizowane w polu tabeli. Zmiana jest rozłożona równomiernie na wszystkie wartości, ale tryb rozłożenia można zmienić w funkcji InputSum().