CalcDim - funzione per grafici
Quando si utilizza in un'espressione di dimensione, CalcDim() sovrascrive l'interpretazione automatica del motore su come gestire internamente l'espressione. Nello specifico, la funzione impedisce che venga creato un nuovo campo interno nel modello dati. Invece, le selezioni effettuate nell'app vengono considerate come selezioni nei campi applicabili dal modello dati.
Questa funzione non può essere utilizzata nello script di caricamento. Inoltre, una best practice per le prestazioni del sistema consiste nel caricare i campi utilizzati nella dimensione calcolata come campi logici tramite lo script di caricamento, quando possibile. CalcDim() offre un modo per controllare il comportamento del motore in scenari in cui il caricamento del campo calcolato dallo script non è possibile.
In Qlik Sense, l'espressione della dimensione viene per impostazione predefinita realizzata come campo al volo, ovvero come un campo effettivo, visibile nella barra di selezione corrente, creato su richiesta. Le selezioni vengono applicate e dedotte a questo campo, in modo simile a qualsiasi campo logico dello script.
Un'espressione racchiusa in CalcDim() si comporterà allo stesso modo in cui funzionano tutte le espressioni di dimensione calcolata in QlikView, ovvero una mappatura ad hoc dei valori calcolati ai valori del campo di origine sottostante. Tutti i calcoli di campo al volo possono essere trasferiti in dimensioni calcolate utilizzando la funzione CalcDim() poiché la dimensione calcolata deve soddisfare meno requisiti basati sul modello dati rispetto al corrispondente calcolo di campo al volo. Questa trasformazione può essere desiderabile per garantire un comportamento simile per tutte le dimensioni calcolate in cui il modello dati può impedire l'uso di un calcolo di campo al volo in alcuni casi, ma non in altri.
Sintassi:
CalcDim(expr)
Tipo di dati restituiti: duale
Argomento | Descrizione |
---|---|
expr |
Un'espressione utilizzata come dimensione o come segmento all'interno di un'espressione di dimensione. |
Quando usare CalcDim
CalcDim() è utile quando è necessario un maggiore controllo sul modo in cui il motore Qlik gestisce i campi richiamati in un'espressione di dimensione.
Per impostazione predefinita, Qlik Sense decide automaticamente se creare e fare riferimento a campi interni nel modello dati quando si utilizza un'espressione di dimensione personalizzata. Qlik Sense crea e utilizza questi campi interni ogni volta che è possibile. Quando non è possibile, l'espressione viene gestita con riferimento ai campi del modello dati esistenti su cui si basa.
A seconda del caso d'uso, questa elaborazione automatica potrebbe non essere sempre desiderabile. Ad esempio, se si utilizza una variabile in un'espressione di dimensione, la creazione automatica di nuovi campi può diventare problematica. In questo caso, utilizzare CalcDim() per forzare la gestione dell'espressione senza questo metodo.
Di seguito sono riportati alcuni casi d'uso comuni:
È stato eseguito il trasferimento del contenuto di QlikView in Qlik Sense e si desidera mantenere il metodo di elaborazione QlikView per le dimensioni calcolate.
Si desidera semplificare il comportamento di selezione nell'app. Ad esempio, si preferisce mostrare le selezioni di campo come selezioni nei campi del modello dati originale, anziché come selezioni in nuovi campi.
Il tuo caso d'uso richiede un'espressione ad hoc per coerenza e prestazioni. Ad esempio, se l'espressione della tua dimensione contiene parametri di visualizzazione dinamici controllabili dall'utente, come formattazione controllabile, valori di cut-off o periodi.
Esempio | Risultato |
---|---|
=CalcDim(if(Year < 2023, 'Older', Year)) | Effettuare una selezione in una visualizzazione che utilizza questa dimensione verrà elaborato e visualizzato come una selezione nel valore del campo Year associato dal modello dati. Al contrario, supponiamo che tu non racchiuda l'espressione in CalcDim(). In questo caso, apparirebbe così: =if(Year < 2023, 'Older', Year) Effettuare una selezione nell'espressione precedente verrebbe elaborato e visualizzato come una selezione nel campo interno =if(Year < 2023, 'Older', Year), che non si trova nel modello dati. |