Campo di pannello di lookup
copia linkTrascrizione

Introduciamo ora la seconda opzione quella denominata campo di Lookup: il campo di lookup ha una doppia valenza:
Cominciamo con un campo di Lookup di sola lettura; vorrei poter visualizzare, nel layout dettaglio degli Appartamenti, oltre al comune anche lo Stato di riferimento.
L’informazione Stato viene mostrata nell’elenco, ma non viene mostrata quando la combobox è chiusa; quando è chiusa viene mostrata la Denominazione come campo di decodifica, quindi come fare?
Utilizzo l’oggetto Query di Lookup insieme al campo di pannello di Lookup per mostrare informazioni che si trovano in altre tabelle (come questo caso dello stato di una località).
La query di Lookup è una Query che viene eseguita per ogni record visualizzato, quando impostiamo la query dobbiamo ricordarci che il risultato della query deve essere un recordset con al massimo 1 record (quindi vuoto o 1 record), tutte le colonne che desideriamo senza limitazioni.
Facciamo due conti così chiariamo meglio: se un pannello visualizza in lista 30 Appartamenti, ed è presente una Query di Lookup nel pannello, la query sarebbe eseguita 30 volte,1 per ogni record, e il risultato sarebbe riferito al record in esame: dico questo per ricordarvi che sì le query di lookup sono comode ma meglio non esagerare, prima di rallentare tutta l’applicazione.
Proviamo nel progetto, nella videata Appartamenti, ad aggiungere una query di Lookup: Albero di progetto, Pannello Appartamenti, tasto destro Aggiungi Query di Lookup: definiamo la query recuperando i dati dalla tabella Località, quindi from Localita, e come colonne dopo select aggiungiamo per ora il campo ISOSTATO.
La query è corretta? la definizione della query ritorna al massimo 1 record? eh no, qui verrebbero recuperate tutte le località; dobbiamo aggiungere una condizione di Where: posizioniamoci sulla riga from e digitiamo where e poi la condizione che sarà ID uguale a , dovrebbe essere uguale al valore del campo di pannello IdComune;proprio così trasciniamo il campo di pannello dall’albero di progetto alla condizione per inserirlo.
Questa query, in esecuzione, verrà eseguita N volte, per ogni riga visualizzata, e la condizione sarà ogni volta modificata con il valore IdComune del record Appartamenti.
Ultimo step: trasformiamo la colonna ISOSTATO in campo di Lookup da visualizzare nel pannello; quindi Tasto destro del mouse sul campo ISOStato, Aggiungi Campo.
Controllando in interfaccia troviamo un nuovo campo di pannello, anche nell’albero di progetto lo troviamo ed eccolo il campo con l’icona di colore BLU (che avevamo in precedenza), il campo con icona Blu è sempre un campo di lookup i cui dati derivano da una query di Lookup su un’altra tabella.
Tolgo il campo ISOSTATO dalla lista, e sistemo meglio il campo in dettaglio poi possiamo compilare cosi vediamo il risultato….. Apriamo prima Elenco Località così inseriamo qualche località estera: Zurigo CH, Parigi, FR, Londra UK. Adesso apriamo la videata Appartamenti: andando in dettaglio già notiamo che oltre al Comune c’e’ lo Stato corretto, proviamo a modificare il Comune mettendo Zurigo, mi aspettavo un cambio immediato dello Stato e invece, ve lo dico il cambio arriva al salvataggio: salviamo ed in effetti ha cambiato.
Questo problema sarà risolto tra poco, insieme al problema di caricamento file dei campi Blob, quindi solo un poco di pazienza ancora.
Il comportamento del campo di Lookup è quindi corretto: questa è la versione read only del campo, infatti non posso cambiare ISOSTATO, è un campo non modificabile; esiste un’altra versione del campo di Lookup ed è denominata Smart Lookup: la versione Smart consente anche l’inserimento, vuole dire che possiamo cambiare IdComune variando tramite una combobox sullo Stato.
Torniamo al progetto e proviamo: prima di tutto aggiungiamo alla Query di Lookup la colonna Denominazione e ID ed impostiamo come prima nelle proprietà le opzioni Titolo e Visible opportune.
Fatto questo, trasformiamo la query di lookup in query di Smart Lookup; sull’oggetto Query di Lookup, tasto destro Attiva Smart Lookup.
Salviamo, compiliamo ed eseguiamo l’applicazione: apriamo la videata Appartamenti, ed ecco che il campo ISOSTATO è utilizzabile con una casella a discesa, possiamo modificare e viene a modificarsi idComune automaticamente.
I due metodi che vi ho mostrato Query Value List e Query Lookup sono i due metodi utilizzati per consentire di inserire, nei record, elementi che derivano da tabelle secondarie e che necessitano di una decodifica.
- Possiamo inserire un oggetto campo di Lookup per mostrare informazioni che derivano da altre tabelle (un oggetto di sola lettura)
- Possiamo inserire un oggetto campo di Lookup per consentire l’inserimento di valori in campi di foreign key (in maniera simile alla Query Lista Valori vista nel tutorial precedente)
Cominciamo con un campo di Lookup di sola lettura; vorrei poter visualizzare, nel layout dettaglio degli Appartamenti, oltre al comune anche lo Stato di riferimento.
L’informazione Stato viene mostrata nell’elenco, ma non viene mostrata quando la combobox è chiusa; quando è chiusa viene mostrata la Denominazione come campo di decodifica, quindi come fare?
Utilizzo l’oggetto Query di Lookup insieme al campo di pannello di Lookup per mostrare informazioni che si trovano in altre tabelle (come questo caso dello stato di una località).
La query di Lookup è una Query che viene eseguita per ogni record visualizzato, quando impostiamo la query dobbiamo ricordarci che il risultato della query deve essere un recordset con al massimo 1 record (quindi vuoto o 1 record), tutte le colonne che desideriamo senza limitazioni.
Facciamo due conti così chiariamo meglio: se un pannello visualizza in lista 30 Appartamenti, ed è presente una Query di Lookup nel pannello, la query sarebbe eseguita 30 volte,1 per ogni record, e il risultato sarebbe riferito al record in esame: dico questo per ricordarvi che sì le query di lookup sono comode ma meglio non esagerare, prima di rallentare tutta l’applicazione.
Proviamo nel progetto, nella videata Appartamenti, ad aggiungere una query di Lookup: Albero di progetto, Pannello Appartamenti, tasto destro Aggiungi Query di Lookup: definiamo la query recuperando i dati dalla tabella Località, quindi from Localita, e come colonne dopo select aggiungiamo per ora il campo ISOSTATO.
La query è corretta? la definizione della query ritorna al massimo 1 record? eh no, qui verrebbero recuperate tutte le località; dobbiamo aggiungere una condizione di Where: posizioniamoci sulla riga from e digitiamo where
Questa query, in esecuzione, verrà eseguita N volte, per ogni riga visualizzata, e la condizione sarà ogni volta modificata con il valore IdComune del record Appartamenti.
Ultimo step: trasformiamo la colonna ISOSTATO in campo di Lookup da visualizzare nel pannello; quindi Tasto destro del mouse sul campo ISOStato, Aggiungi Campo.
Controllando in interfaccia troviamo un nuovo campo di pannello, anche nell’albero di progetto lo troviamo ed eccolo il campo con l’icona di colore BLU (che avevamo in precedenza), il campo con icona Blu è sempre un campo di lookup i cui dati derivano da una query di Lookup su un’altra tabella.
Tolgo il campo ISOSTATO dalla lista, e sistemo meglio il campo in dettaglio poi possiamo compilare cosi vediamo il risultato….. Apriamo prima Elenco Località così inseriamo qualche località estera: Zurigo CH, Parigi, FR, Londra UK. Adesso apriamo la videata Appartamenti: andando in dettaglio già notiamo che oltre al Comune c’e’ lo Stato corretto, proviamo a modificare il Comune mettendo Zurigo, mi aspettavo un cambio immediato dello Stato e invece, ve lo dico il cambio arriva al salvataggio: salviamo ed in effetti ha cambiato.
Questo problema sarà risolto tra poco, insieme al problema di caricamento file dei campi Blob, quindi solo un poco di pazienza ancora.
Il comportamento del campo di Lookup è quindi corretto: questa è la versione read only del campo, infatti non posso cambiare ISOSTATO, è un campo non modificabile; esiste un’altra versione del campo di Lookup ed è denominata Smart Lookup: la versione Smart consente anche l’inserimento, vuole dire che possiamo cambiare IdComune variando tramite una combobox sullo Stato.
Torniamo al progetto e proviamo: prima di tutto aggiungiamo alla Query di Lookup la colonna Denominazione e ID ed impostiamo come prima nelle proprietà le opzioni Titolo e Visible opportune.
Fatto questo, trasformiamo la query di lookup in query di Smart Lookup; sull’oggetto Query di Lookup, tasto destro Attiva Smart Lookup.
Salviamo, compiliamo ed eseguiamo l’applicazione: apriamo la videata Appartamenti, ed ecco che il campo ISOSTATO è utilizzabile con una casella a discesa, possiamo modificare e viene a modificarsi idComune automaticamente.
I due metodi che vi ho mostrato Query Value List e Query Lookup sono i due metodi utilizzati per consentire di inserire, nei record, elementi che derivano da tabelle secondarie e che necessitano di una decodifica.
Ultima modifica: 19/03/2021 / Validità: da 20.0.7800