Form filtering — Filter layer data based on field values

Regola

Questo strumento visualizza un form nel pannello di sinistra, basato su alcuni campi, e permette agli utenti di cercare tra i dati del livello con una varietà di input del form: caselle combinate, caselle di controllo, input di testo con autocompletamento, selettore di date con cursori tra la data minima e massima, ecc.

Avvertimento

Funziona solo con livelli database: PostgreSQL ( raccomandato), Spatialite e GeoPackage.

Utilizzando le istruzioni SQL, Lizmap interrogherà i dati da recuperare:

  • il numero totale di caratteristiche per il filtro corrente

  • i valori unici di alcuni campi (per il tipo Valori Univoci per esempio)

  • il minimo e il massimo dei campi numerici o dei campi data

  • l’estensione dei dati per il filtro corrente

Nota

The Export button in the Filter panel is linked to the attribute table tool.

Esempio

Potete vedere un video con un esempio: https://vimeo.com/331395259

Prerequisiti

Il livello deve essere pubblicato come WFS (vedi WFS/OAPI) e la chiave primaria deve essere pubblicata anche nelle Proprietà del livello.

Configurazione del plugin

../../_images/interface-add-form-filter.jpg

There is a tab in the Lizmap plugin which lets you configure the filter inputs based on the layer fields. You can add one or more fields for one or more layer. If you add fields from 2 or more different layers, Lizmap Web Client will show a combo box to allow the user to choose the layer to filter. Selecting a layer will refresh the form and deactivate the current filter.

  • Hai bisogno di aggiungere una riga nella tabella dei plugin per ogni campo che hai bisogno di aggiungere nel modulo del filtro. Per ogni campo, è necessario configurare alcune opzioni:

    1. Fai clic sul pulsante add_layer_svg.

    2. Layer: il livello sorgente.

    3. Title: il titolo da dare all’input, che sarà visualizzato sopra l’input del modulo. Per esempio « Scegliere una categoria» per un campo di livello chiamato «categoria».

    4. Type: il tipo di input del modulo, tra uno dei seguenti: Text, Unique Values, Date, Numeric.

    5. Field: il nome del campo (nella tabella del database). Solo per i tipi Text, Unique Values e Numeric.

    6. Min date: il campo che contiene la data d’inizio del tuo oggetto (es: «start_date» di un evento). Questo è necessario solo per il tipo Date. Se hai solo un campo data nei tuoi dati, dovresti selezionarlo nel campo Min Date.

      • Max date: il campo che contiene la data finale dei vostri dati. Se hai 2 campi contenenti date, uno per la data iniziale e un altro per la data finale, puoi differenziarli. Altrimenti, devi usare lo stesso nome di campo per Min date e Max date.

      • Format: il formato del solo tipo Valori Univoci. Può essere select, che mostrerà una casella combinata, o checkboxes che mostrerà una casella di controllo per ogni valore distinto. I valori distinti sono interrogati dinamicamente da Lizmap Web Client.

    7. Splitter: solo per il tipo Valori univoci. Usalo se vuoi dividere i valori del campo con un separatore. Es: cultura, ambiente può essere diviso in cultura e ambiente con lo splitter `, `.

  • Per modificare un livello nella tabella, selezionalo e clicca sul pulsante edit_layer_svg o fai doppio clic sulla riga.

  • Per rimuovere un livello dalla tabella, selezionalo e clicca sul pulsante remove_layer_svg.

  • Per spostare un livello in alto o in basso, selezionatelo e cliccate sui pulsanti down_layer_svg o up_layer_svg. L’ordine cambierà anche in Lizmap.

Descrizione dei diversi tipi di input del modulo

Text

Questo è il tipo più semplice. Con questo tipo di input, l’utente vedrà un classico input di testo. Si può digitare qualsiasi testo e poi convalidare. L’autocompletamento è abilitato di default, il che significa che Lizmap recupererà i valori unici per questo campo. Questa potrebbe essere un’opzione in futuro se alcuni set di dati sono troppo grandi e questa funzione di autocompletamento è troppo pesante.

Il filtro costruito sarà così:

"field" LIKE '%foo%'

Data

Questo tipo di input mostrerà un cursore con 2 bottoncini per permettere la ricerca tra i due valori selezionati. Anche i due input di testo sono mostrati e possono essere utilizzati per impostare manualmente le date minime e massime.

La data è «troncata» ad una data (nessun dato temporale come ore, minuti o secondi).

Il passo del cursore è hard coded ed è uguale a 86400 secondi, che significa 1 giorno.

Il filtro costruito sarà così:

( ( "field_date" >= '2017-04-23' OR  "field_date" >= '2017-04-23' ) AND ( "field_date" <= '2018-06-24' OR  "field_date" <= '2018-06-24' ) )

Numerico

Questo tipo di input mostrerà un cursore con 2 bottoncini per consentire la ricerca tra i due valori selezionati. Vengono mostrati anche due input di testo che possono essere utilizzati per impostare manualmente i valori minimi e massimi.

Il filtro costruito sarà così:

( ( "field" >= 100 ) AND ( "field_date" <= 200 ) )

Valori unici

Lizmap interrogherà i dati per ottenere i valori distinti del campo. Puoi scegliere due tipi di input diversi: select o checkboxes.

Se avete specificato uno splitter testuale, per esempio `, `, Lizmap troverà i valori unici dei valori testuali separati. Per esempio il valore di una caratteristica cultura, ambiente sarà diviso in cultura e ambiente con lo splitter `, `. Selezionando cultura o ambiente nell’input del modulo verrà mostrata questa caratteristica.

Si può scegliere di mostrare due diversi tipi di input:

  • Combo box: questo tipo mostrerà una casella combinata con la lista di valori distinti per il campo. L’utente potrà scegliere un solo elemento tra i valori.

  • Checkboxes: questo tipo mostrerà tante comboboxes quanti sono i valori distinti per il campo. I dati saranno filtrati con una UNION tra le voci selezionate.

Il filtro costruito sarà così:

( "field_thematique" LIKE '%Cuisine%'  OR "field_thematique" LIKE '%Ecocitoyen%'  )