[{TableOfContents }]\\
!!! Filtro Q3\\
!! Generalità\\
Il filtro è uno strumento che dà la possibilità di scegliere un determinato insieme di record relativamente ad un archivio. Mentre i parzializzatori classici prevedevano la necessità di creare un diverso programma per ogni archivio, il filtro è una funzione generica che può essere applicata a qualsiasi archivio od oggetto applicativo che faccia riferimento ad un archivio. Inoltre è da sottolineare come il filtro non abbia una validità limitata alla singola schermata, ma una valenza a livello di sessione utente. Questo significa che se si imposta un filtro sull'archivio degli articoli, tale filtro non è limitato alla singola schermata (ad esempio alla singola matrice), ma resta valido anche per altre schermate che utilizzino il filtro sullo stesso oggetto.

L'oggetto filtro è anche presente nella nuova scheda dell'oggetto file.

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_023.png' caption='Scheda oggetto file' }]
!!! Scheda filtro Q3\\
La scheda del filtro si presenta come segue:
[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_024.png' caption='Scheda del filtro' }]
La scheda è divisa i 3 sottoschede:
* La sezione "__E/*JOB__" , è relativa al filtro attivo per il lavoro in corso (*JOB).\\
* La sezione "__Gestione memorizzazioni__" , è relativa alla gestione delle memorizzazioni multiple di diverse impostazioni di filtro (rifarsi alle memorizzazioni multiple dei parzializzatori)\\
* La sezione "__Analisi__" , è dedicata alla presentazione delle istruzioni SQL impostate nel filtro\\

!! Sottoscheda *JOB\\
[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_025.png' caption='Sottoscheda *JOB' }]
Nella prima colonna viene presentata la lista dei campi del file
La seconda e la terza colonna sono i "Da" a "A" delle vecchie parzializzazioni e rappresentano il limite inferiore e il limite superiore del filtro. Valgono le regole consuete:
La sezione "__E/*JOB__" , è relativa al filtro attivo per il lavoro in corso (*JOB).
* valore "Da" = blank e valore "A" = * (asterisco) si assumono i limiti massimi (es. da zero a infinito)\\
* valore "Da" è compilato e valore "A" = blank si assume il valore "A" uguale al valore "Da"\\
* valore "Da" = blank e valore "A" compilato si assume il valore "Da" uguale al minimo possibile (es. zero)\\
* nei campi da / a sono attive le ricerche "!", "?", "/"\\
Nella colonna "Lista inclusi" si può indicare una lista di oggetti da includere nel filtro. Le ricerche "!" o "?" permettono di vedere e selezionare una delle liste esistenti (per creare una nuova lista usare l'opzione 01 - Aggiunta, dal formato di lista delle liste)
Nella colonna "Lista esclusi" si può inserire una lista di oggetti da escludere nel filtro
La colonna "Operatore" permette di attribuire un operatore SQL al filtro. Sono attive le ricerche "!" o "?" per la scelta dell'operatore
La colonna "Condizione" associa una condizione all'operatore inserito nella colonna precedente (es. GT  12345). Sono attive le ricerche "!" o "?" o "/" per la scelta della condizione. Nel caso l'operatore sia "LS" o "LN" (lista di inclusione e lista di esclusione) nella condizione si indicano N. valori separati dal punto-e-virgola  ";"
Tutte le selezioni possibili con le varie colonne vengono elaborate in "AND".

Quando viene eseguita una selezione su una riga, questa viene portata in cima alla lista, le righe sulle quali esiste una selezione hanno uno sfondo di colore diverso nella prima colonna:

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_026.png' caption='Filtri attivi' }]Sul basso della scheda sono presenti dei bottoni la maggior parte dei quali con utilizzo intuitivo o aderente allo standard Looc.UP. Una menzione particolare per:
* __F6 =Conferma__, conferma le selezioni eseguite e le attribuisce al lavoro corrente dell'utente (*JOB)\\
* __F14=Gestione in lista__, rimanda ai formati di gestione in lista (emulazione 5250) (cfr. capitolo Gestione in lista)\\
* __F16=Pulizia filtro__, sbianca tutte le selezioni precedentemente eseguite\\

!! Sottoscheda Gestione memorizzazioni\\

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_027.png' caption='Sottoscheda gestione memorizzazioni' }]Questa sottoscheda permette di lavorare sulle memorizzazioni dei filtri
* Creare un nuovo filtro\\
* Salvare con un nome il filtro selezionato\\
* Eliminare il filtro attivo\\
* Attivare un filtro\\
* Sbiancare il filtro selezionato\\
* Eseguire il filtro attivo e visualizzare il risultato in matrice\\

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_028.png' caption='Presentazione in matrice' }]
Se viene selezionato il "Salva con nome" compare la seguente scheda di impostazione del salvataggio:

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_030.png' caption='Impostazione memorizzazioni' }]__Filtro personale__, di default è attivo e se selezionato salva il filtro solo ad uso esclusivo dell'utente, mentre se non è selezionato salva il filtro ad uso di tutti gli utenti.

Le funzioni di "__Documentazione__" mostrano le selezioni del filtro in forma di matrice o di stringa SQL.

La funzione "__Scheda con navigazione__" apre la scheda della versione precedente del filtro Q3 mentre la funzione "__5250__" rimanda alla gestione in lista.

!! Sottoscheda Analisi\\
Presenta le informazioni del filtro tra cui la stringa SQL:
[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_031.png' caption='Sottoscheda analisi' }]
!! Gestione in lista\\
Tramite questa modalità si possono gestire i filtri in lista (subfile):
[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_029.png' caption='Filtro in lista' }]
Le possibilità si esemplificano entrando in modifica di uno qualsiasi dei campi con l'opzione 2.
[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_030.png' caption='Dettaglio di un filtro' }]
Sono presentate in forma emulazione 5250 le stesse possibilità di selezione illustrate precedentemente.

L'ultima riga rappresenta la stringa SQL di selezione. Questa stessa stringa può essere copiata in altre righe del subfile per operare altre selezioni.

Conoscendo la sintassi SQL da utilizzare si possono inserire direttamente le selezioni nel subfile, ci sono anche delle convenzioni utilizzabili per ridurre la scrittura:
* scrivendo direttamente il codice, questo ha il significato di EQ()\\
* scrivendo __codice1:codice2__, questo ha significato di range (da / a).\\

Il campo in alto al subfile permette di andare a filtrare/evidenziare i campi del filtro:

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_033.png' caption='Input selezione campi per parola' }]
Digitando in questo campo:
* __F e una parola (oppure solo la parola)__: vengono mostrati solo i campi del file che contengono la parola nella descrizione\\
* __E e una parola__: vengono mostrati tutti i campi del file, evidenziando quelli che contengono la parola nella descrizione\\
* __O e un codice oggetto__: vengono mostrati solo i campi del file che contengono l'oggetto\\
* __X e un codice oggetto__: vengono mostrati tutti i campi del file, evidenziando quelli che contengono l'oggetto\\

[{Image src='http://gilberto.smea.it/SmeImg/TAB%C2%A3A/B%C2%A3/B%C2%A3BASE/B%C2%A3BASE_034.png' caption='Evidenzia campi per parola' }]Il comando funzione F17=Impostazioni associa uno schema al filtro impostato, il comando F19 presenta la lista dei filtri memorizzati, gli altri comandi hanno un utilizzo intuitivo.