Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Sanesi Stefano - Ottobre 01, 2014, 03:39:58 pm

Titolo: Utilizzo di DBLookupCombo
Inserito 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...

Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: xinyiman - Ottobre 04, 2014, 07:08:47 pm
In tutta onestà non ho capito bene qual'è il tuo problema
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Sanesi Stefano - Ottobre 04, 2014, 10:50:07 pm
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 ?
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Stilgar - Ottobre 06, 2014, 12:34:20 am
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
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Sanesi Stefano - Ottobre 09, 2014, 04:41:24 pm
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 ?
             
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Sanesi Stefano - Ottobre 09, 2014, 04:43:17 pm
Propietà DBLookupCombo1
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Sanesi Stefano - Ottobre 09, 2014, 04:44:13 pm
Propietà DBLookupCombo2
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: Sanesi Stefano - Ottobre 09, 2014, 04:45:20 pm
Propietà DBLookupCombo 3
Titolo: Re:Utilizzo di DBLookupCombo
Inserito da: xinyiman - Ottobre 09, 2014, 04:52:28 pm
Per capire come usare una dblookupcombobox basta esaminare l'esempio che trovi nella cartella dove è installato lazarus nella sottocartella

examples/database/dblookup