Vai al contenuto principale

Campi di input

IN QUESTA PAGINA

Campi di input

QlikView supporta un tipo speciale di campo che può essere cambiato senza l'esecuzione dello script, il campo input.

Un campo di input è come un qualsiasi altro campo di QlikView, con la differenza che i suoi valori, come vengono letti nello script, possono essere modificati senza eseguire nuovamente lo script. I campi di input possono essere utilizzati come qualsiasi altro campo in tutti i tipi di oggetti di lavoro.

Quando si utilizzano i campi di input, lo script crea dei posizionatori per ogni valore di campo, che in seguito possono essere modificati per contenere nuovi dati. Qualsiasi campo può essere trasformato in un campo di input inserendolo in un'istruzione inputfield nello script prima che appaia in un'istruzione LOAD o SELECT.

I valori di un campo di input possono essere modificati nelle celle delle caselle di elenco, delle caselle tabellari e delle espressioni grafiche delle tabelle. Solo le caselle di elenco e le colonne delle tabelle che contengono campi di input sono modificabili. Passando con il mouse sopra ad una cella modificabile verrà visualizzata un'icona di input. Facendo clic sull'icona si imposta la cella in modalità di modifica di input. È possibile utilizzare i tasti freccia su/giù per spostarsi tra le celle mentre si rimane in modalità di modifica di input. L'intero documento QlikView viene ricalcolato automaticamente ogni volta che si immettono nuovi valori.

Una cella di espressione di un grafico tabellare può contenere una funzione di aggregazione dei campi di input speciale e rimanere aperta per l’input. La modifica verrà quindi distribuita su tutti i valori di campo sottostanti in base ad algoritmi predefiniti, come "distribuisci ugualmente" o "distribuisci proporzionalmente".

È possibile specificare una modifica relativa.

Nota: La modifica relativa funziona quando si utilizza la modalità di distribuzione come parte dell'espressione.

Si applica la sintassi seguente (dove n è un numero):

Sintassi input
Sintassi Descrizione
%+n aumenta il valore corrente di n% 
%-n riduce il valore corrente di n% 
+=n aumenta il valore corrente di n 
-=n riduce il valore corrente di n 
*=n moltiplica il valore corrente per n 
/=n divide il valore corrente per n 

Example:  

%+10 aumenta il valore corrente del 10%.

+=56 aumenta il valore corrente di 56.

*=2 moltiplica il valore per 2.

/=2 divide il valore per 2.

/=0 non viene apportata alcuna modifica.

Sono anche disponibili delle API di automazione per l'estrazione e l'impostazione dei valori programmaticamente.

Limitazioni

  • Non è possibile utilizzare un campo calcolato e i campi chiave come campi di input. La funzionalità dei campi di input sarà disattivata automaticamente.
  • I campi di input non sono stati progettati per contenere un numero elevato di dati visto che il metodo di archiviazione dei dati è decisamente meno efficiente rispetto ai campi standard.
  • La chiave tra il campo input e il campo logico deve essere univoca, non può contenere alcun valore duplicato.

Esempio campo input

Questo esempio aggiunge un campo input ai dati e mostra come poter aggiornare i valori in modo interattivo.

  1. Caricare i seguenti dati nello script di caricamento.

    Inputfield Value;

     

    Table1:

    LOAD * INLINE

    [

    Chiave. Attributo, Valore

    Bob, Jan, 100

    Bob, Feb, 200

    Bob, Mar, 300

    Kate, Jan, 400

    Kate, Feb, 500

    Kate, Mar, 600

    ];

  2. Una volta caricati i dati, creare una Tabella e aggiungere tutti e tre i campi.
  3. Creare un grafico Tabella lineare e aggiungere Key come dimensione. Aggiungere le seguenti espressioni:

    • Sum(Value)
    • InputSum(Value)

    Entrambe le espressioni mostreranno lo stesso valore, ma è possibile aggiornare soltanto InputSum(Value) nella tabella lineare, non Sum(Value).

Ora è possibile modificare Value nella tabella in modo interattivo. I valori aggregati delle espressioni nella tabella lineare verranno aggiornati di conseguenza.

È anche possibile aggiornare i valori dell'espressione InputSum(Value) nella tabella lineare. I valori sottostanti verranno aggiornati nella tabella. La modifica viene distribuita equamente per tutti i valori, ma è possibile modificare la modalità di distribuzione nella funzione InputSum().