Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: Sanesi Stefano - Ottobre 01, 2014, 03:39:58 pm
-
Ciò che ho letto finora (in ambiente Lazarus , anche su Free Pascal Wiki) approposito di questo comonente no mi è chiaro.
Essendo stato abituato ad usarlo in Delphi impostando semplicemente LookupDisplay e LookupField mi funzionava.
Ho dato un'occhiata anche alla discussione su questo Forum, ma ci ho capito poco.
Problema :
Avendo una tabella : "Anagrafica" siffatta : Cognome, Nome, indirizzo - (una banale rubrica).
Vorrei mi apparisse nella combo la lista di tutti i "cognomi" presenti in "Anagrafica" (come fosse un indice di un libro),
in modo tale che cliccando su un cognome della lista , mi appaia nei campi DBEdit della form, il dettaglio di di quella riga della tabella "Anagrafica" cioè : cognome, nome, indirizzo , così da poterli visualizzare e/o modificare.
Nel caso della TAnagrafica di Delphi Cognome l'avevo definito come chiave secondaria K-Cognome non unica.
Nel progettino che ho reallizzato con Lazarus ho impostato così le propietà di DBLookupCombo :
DataSource :DataSource legato alla ZQuery sulla tabella "Anagrafica" (SELECT * FROM ANAGRAFICA).
DataField : legato al campo Cognome presente nella Form come DBEdit, cosa che non mi torna, perchè le colonne di quella riga vorrei poterle modificare tutte.
ListSource : legato ad una ZQueryxCombo, che dovrebbe creare la lista di tutti i cognomi. Comando SQL : (SELECT Cognome FROM ANAGRAFICA).
In ListField, non capisco cosa ci vada.
Probailmente in KeyField ci andrà Cognome definito nella tabella come chiave ?
Scusate se sono andato .. a caso...
-
In tutta onestà non ho capito bene qual'è il tuo problema
-
il problema e' che la combo e' vuota ! quando ci clicco non si apre niente...almeno impostando il tutto come ho spiegato.
In soldoni...esiste un semplice esempio su come impostarene le propieta' ? di come va utilizzata ?
-
Ciao.
Lookup è la chiave del probelma xinyiman.
Da quello che ho capito imposti solo il campo "target" ma non quello "source".
Nella tabelle pincopalla definisci il campo target e gli dici che è cognome.
Ma se non imposti una chiave dal quale pescare i dati da presentare a video la combo non fornirà nessun suggerimento valido.
Devi impostare le Lookup Key e Value. I nomi fanno venire qualche sospetto per su come impostarle ;) Nel caso la lookup key e value siano le stesse vanno impostate con lo stesso campo.
Onestamente spero di aver capito il problema e di aver dato la risposta giusta.... :D
Stilgar
-
Rispondo a Stilgar che nelle propietà della mia Lookup non vedo la "Lookup key" , proverò a spiegarmi meglio...inserendo le immagini della Lookuop con e propietà che ho impostato:
Ho una tabella "INDIRIZZI" così fatta : ID : chiave primaria , NOME, COGNOME indice non unico, INDIRIZZO.
Un "DataSource1" legato alla query "ZQueri1" con SQL uguale a : (Select * From INDIRIZZI).
Un "DataSourceCombo" legato alla query "ZQueryCombo" con SQL uguale a : (Select COGNOME From INDIRIZZI).
Come vanno impostate le propietà della DBLookupCombo, in modo vi si leggano tutti i Cognomi presenti in tabella , così da pater scegliere quello desiderato e vedere il dettaglio tabella nella Form ?
-
Propietà DBLookupCombo1
-
Propietà DBLookupCombo2
-
Propietà DBLookupCombo 3
-
Per capire come usare una dblookupcombobox basta esaminare l'esempio che trovi nella cartella dove è installato lazarus nella sottocartella
examples/database/dblookup