Campo di pannello value list
copia linkTrascrizione
Siamo ancora nei campi di pannello e abbiamo ancora alcune lacune in quanto non sappiamo ancora perché nel pannello c’è un’altra query la Lookup Comune e un campo con icona blu: per chiarirci meglio le idee posizioniamoci sulla query Tasto destro -> Elimina Oggetto così abbiamo eliminato Query e campo Blu.
Forse abbiamo esagerato? Adesso, nel pannello, come possiamo inserire il comune?
In teoria il comune andrebbe inserito nel campo IDComune, perché non mettiamo il comune in modalità testo ma inseriamo il comune con un riferimento alla tabella Località; tra l’altro, in questo momento, il campo è nascosto, rendiamolo visibile in lista e dettaglio e vediamo cosa succede se mandiamo in esecuzione l’applicazione.
Attendiamo un attimo, poi apriamo la videata Appartamenti, e possiamo notare che il campo, in certi record, è valorizzato; ad esempio nel tutorial precedente per Apart Student avevamo inserito Milano eh si qualcosa c'è’, non leggo Milano ma sicuramente è il DOC-ID cioè la chiave primaria di Milano nella tabella Località.
Non è certo comodo comprendere il Comune attraverso la chiave primaria ed anche quando si deve inserire è tutt’altro che smart.
Per risolvere questo problema abbiamo 2 metodi:
Proviamo il primo approccio: abbiniamo al campo IdComune una Query di recupero dati; quando un campo di pannello possiede una query abbinata, viene visualizzato come campo Combobox con un menu a discesa e il contenuto del menu a discesa sono i record recuperati dalla query.
Albero di progetto, campo di pannello IdComune, tasto destro Aggiungi Query Lista Valori; nella scheda di progettazione possiamo impostare la query.
Che elementi dobbiamo mostrare? I record della tabella Località, quindi sulla riga from digitiamo Località; e per quanto riguarda le colonne da mostrare?
Possiamo mostrare da 1 a più colonne, ovviamente senza esagerare, e ricordandosi che il primo campo della query dovrà sempre essere il campo che valorizzerà la proprietà sottostante: nel nostro esempio la proprietà da valorizzare è IdComune, allora il primo campo della query dovrà essere la chiave primaria della tabella Località appunto Id; successivamente possiamo mettere altre colonne ad esempio Denominazione ed IsoStato.
Salviamo e proviamo subito: eseguiamo l’applicazione e vediamo come si comporta: apriamo la videata Appartamenti e scegliamo Comune: non è proprio quello che ci si aspettava.
Il controllo Query Value List ha 3 concetti fondamentali da rispettare, anche 4:
Per effettuare queste impostazioni, dobbiamo visualizzare la Query e tenere d’occhio la finestra Proprietà; qui per ogni colonna della query possiamo indicare un Titolo, se Visibile, se è campo di decodifica.
Sistemiamo:
Salviamo e mandiamo in esecuzione: apriamo la videata Appartamenti e già notiamo che la decodifica sembra non funzionare, proviamo a fare clic per mostrare la combobox: si vedono due colonne con i due titoli impostati; quindi rimane solo il problema di decodifica.
Torno al progetto.
L’impostazione della Query è corretta, dobbiamo solo impostare un flag sul campo di pannello, un flag che dica, per questo campo non mostrare il valore del campo ma il valore di decodifica; si perché normalmente nei campi viene mostrato il reale contenuto dei campi ed invece qua vogliamo visualizzare altro. L’opzione è tra le proprietà del campo di pannello ed è Lookup Automatico (al posto della chiave primaria verrà mostrata la denominazione).
Salviamo e mandiamo in esecuzione: apriamo la videata Appartamenti e possiamo notare subito che viene mostrato il nome del comune, proviamo a cambiare e alla chiusura abbiamo il nuovo valore.
Per concludere il campo di pannello Value List consente di mostrare una lista agganciata al campo: quando la lista deriva, come in questo caso, da una query consentiamo all’utente di selezionare dati che si trovano in altre tabelle.
Forse abbiamo esagerato? Adesso, nel pannello, come possiamo inserire il comune?
In teoria il comune andrebbe inserito nel campo IDComune, perché non mettiamo il comune in modalità testo ma inseriamo il comune con un riferimento alla tabella Località; tra l’altro, in questo momento, il campo è nascosto, rendiamolo visibile in lista e dettaglio e vediamo cosa succede se mandiamo in esecuzione l’applicazione.
Attendiamo un attimo, poi apriamo la videata Appartamenti, e possiamo notare che il campo, in certi record, è valorizzato; ad esempio nel tutorial precedente per Apart Student avevamo inserito Milano eh si qualcosa c'è’, non leggo Milano ma sicuramente è il DOC-ID cioè la chiave primaria di Milano nella tabella Località.
Non è certo comodo comprendere il Comune attraverso la chiave primaria ed anche quando si deve inserire è tutt’altro che smart.
Per risolvere questo problema abbiamo 2 metodi:
- trasformare il campo di pannello in campo di pannello Value List (query value list)
- nascondere IdComune e creare un campo di pannello di Lookup
Proviamo il primo approccio: abbiniamo al campo IdComune una Query di recupero dati; quando un campo di pannello possiede una query abbinata, viene visualizzato come campo Combobox con un menu a discesa e il contenuto del menu a discesa sono i record recuperati dalla query.
Albero di progetto, campo di pannello IdComune, tasto destro Aggiungi Query Lista Valori; nella scheda di progettazione possiamo impostare la query.
Che elementi dobbiamo mostrare? I record della tabella Località, quindi sulla riga from digitiamo Località; e per quanto riguarda le colonne da mostrare?
Possiamo mostrare da 1 a più colonne, ovviamente senza esagerare, e ricordandosi che il primo campo della query dovrà sempre essere il campo che valorizzerà la proprietà sottostante: nel nostro esempio la proprietà da valorizzare è IdComune, allora il primo campo della query dovrà essere la chiave primaria della tabella Località appunto Id; successivamente possiamo mettere altre colonne ad esempio Denominazione ed IsoStato.
Salviamo e proviamo subito: eseguiamo l’applicazione e vediamo come si comporta: apriamo la videata Appartamenti e scegliamo Comune: non è proprio quello che ci si aspettava.
Il controllo Query Value List ha 3 concetti fondamentali da rispettare, anche 4:
- In prima posizione query deve sempre esserci il valore reale che applicato alla proprietà
- Bisogna indicare se una colonna sarà Visibile o Invisibile
- Bisogna indicare quale colonna sarà la colonna di decodifica (cioè il valore che sarà mostrato quando la combobox sarà chiusa)
Per effettuare queste impostazioni, dobbiamo visualizzare la Query e tenere d’occhio la finestra Proprietà; qui per ogni colonna della query possiamo indicare un Titolo, se Visibile, se è campo di decodifica.
Sistemiamo:
- Campo Id => Visible [False]
- Campo Denominazione => Titolo [Comune], Visible [True], Decodifica [True]
- ed infine ISO STATO => Titolo [Stato], Visibile [True], Decodifica [False]
Salviamo e mandiamo in esecuzione: apriamo la videata Appartamenti e già notiamo che la decodifica sembra non funzionare, proviamo a fare clic per mostrare la combobox: si vedono due colonne con i due titoli impostati; quindi rimane solo il problema di decodifica.
Torno al progetto.
L’impostazione della Query è corretta, dobbiamo solo impostare un flag sul campo di pannello, un flag che dica, per questo campo non mostrare il valore del campo ma il valore di decodifica; si perché normalmente nei campi viene mostrato il reale contenuto dei campi ed invece qua vogliamo visualizzare altro. L’opzione è tra le proprietà del campo di pannello ed è Lookup Automatico (al posto della chiave primaria verrà mostrata la denominazione).
Salviamo e mandiamo in esecuzione: apriamo la videata Appartamenti e possiamo notare subito che viene mostrato il nome del comune, proviamo a cambiare e alla chiusura abbiamo il nuovo valore.
Per concludere il campo di pannello Value List consente di mostrare una lista agganciata al campo: quando la lista deriva, come in questo caso, da una query consentiamo all’utente di selezionare dati che si trovano in altre tabelle.
Ultima modifica: 19/03/2021 / Validità: da 20.0.7800