Ordinamento per campi di lookup
copia linkIntroduzione
Nella versione 7.1 è stata introdotta la possibilità di ordinare i record contenuti in un pannello anche per i campi di lookup. Anche se questa funzionalità è molto interessante per l'utente finale, tuttavia non è attivabile senza dover pagare un costo in termini di prestazioni/utilizzo di memoria. E' quindi necessario capire come funziona e come è possibile ottimizzarne il funzionamento.
Nota importante
Dalla versione 8.5 il contenuto di questo articolo si applica anche ai campi di pannello che funzionano in modalità auto-lookup.
Attivazione e disattivazione dell'ordinamento
Per attivare l'ordinamento per una colonna di lookup è possibile usare il comando Rendi Ordinabile del menù contestuale dei campi di lookup. Se, in un successivo momento, si desidera disattivare l'ordinamento, è possibile usare il comando Disattiva Ordinamento.

Comandi per la gestione dell'ordinamento dei campi di lookup
Master Query DB
Attivando l'ordinamento per un campo di lookup in un pannello DB (*), cioè con master query basata sul database, avvengono le seguenti modifiche:
- Viene aggiunta una nuova colonna calcolata alla master query (1).
- Tale colonna viene valorizzata con una subquery equivalente alla query di lookup (1).
- La colonna della lookup corrispondente al campo del pannello da rendere ordinabile viene collegata alla nuova colonna della master query (2).
- Viene creato un nuovo campo di pannello nascosto collegato alla nuova colonna della master query (3).

Nuovi oggetti automaticamente aggiunti per rendere ordinabile il campo di lookup
Master Query DO
Se il pannello è basato su un documento, il meccanismo è identico ma invece di intervenire sulla master query del pannello, si interviene sulla master query del documento. Le modifiche apportate sono quindi le seguenti:
- Se il documento non ha una master query documentale, ne viene aggiunta una. (1).
- Alla master query documentale viene aggiunta una colonna che deriva dal campo base del campo di lookup per cui ordinare (2).
- Tale colonna viene valorizzata con una subquery equivalente alla query di lookup (2).
- Viene aggiunta una nuova proprietà aggiuntiva al documento, proprietà che viene poi collegata alla nuova colonna della master query documentale in modo da definirne il caricamento (3).
- La colonna della lookup corrispondente al campo del pannello da rendere ordinabile viene collegata alla nuova colonna della master query che deriva dalla nuova proprietà aggiunta al documento (4).
- Viene creato un nuovo campo di pannello nascosto collegato alla nuova colonna della master query che deriva dalla nuova proprietà aggiunta al documento (5).

Nuovi oggetti automaticamente aggiunti per rendere ordinabile il campo di lookup in un pannello Document Oriented
Ottimizzazione
Il meccanismo illustrato aggiunge una colonna calcolata tramite una sub-query per ogni campo di lookup che si desidera rendere ordinabile. Se ci sono molti campi di lookup che devono essere resi ordinabili e tutti derivano dalla medesima tabella, è possibile che sia più conveniente modificare la master query di pannello o documentale in modo da usare un'unica join invece che tante sub-query. La procedura è la seguente:
- Inserire la tabella nella from list, scegliere il join più corretto.
- Cancellare tutte le sub-query (non le colonne aggiuntive!)
- Editare l'espressione delle colonne aggiuntive, inserendo il campo corrispodente della nuova tabella aggiunta alla query.

Drag & drop della tabella per aggiungerla alla from list

Cancellazione della sub-query

Modifica della colonna per estrarre i valori da ordinare
Impostazione manuale
Qualora la procedura automatica non consenta di ottenere il risultato desiderato, oppure emetta un messaggio di errore a causa di particolari configurazioni del pannello, è possibile rendere ordinabile il campo di lookup tramite la seguente procedura manuale:
- Modificare la master query del pannello in modo da includere una colonna che contenga i valori per cui deve essere ordinato il pannello.
- Aggiungere il relativo campo al pannello, eventualmente nascosto.
- Tirare la colonna della master query sulla colonna della lookup query: quando l'utente ordina il campo di lookup, in realtà verrà eseguito l'ordinamento sulla colonna della master query desiderata.
Pannelli scrivibili
Se il campo di lookup è modificabile, le modifiche verranno propagate anche alla colonna della master query ad esso collegata. In questo modo sarà possibile continuare ad ordinare per quel campo anche senza eseguire il refresh della query del pannello.
Ultima modifica: 23/03/2021 / Validità: da 7.1.3300