Newsgroup: it.comp.lang.delphi
Titolo: DBLookupComboBox

Ciao a tutti,
premetto che ho dei libri a portata di mano su Delphi ma non riesco a
troavare risposte alle mie domande. Cosě prima di abbandonare mi rivolgo a
Voi:
- Ho attivato una DBLookUpComboBox, perche ho la necessita di inserire in
una tabella, dei valori selezionati da un'altra.Infatti scegliendo il campo
"Nome_utente" nella ComboBox in un DbEdit di un DataSource1 appare il
corrispondente valore (indirizzo_utente). E fin qui tutto bene. Pero ora
vorrei che oltre ad apparire l'indirizzo, venga inserito anche il
n_telefonico in un'altro DBEdit del DataSource1. E' possibile farlo?
Grazie
P.S.: Sto Delphi č accattivante...!!!!
--
Roberto Petillo

dbedit.datasource.dataset.fieldbyname('telefono').AsString :=
dbcombo.datasource.dataset.fieldbyname('telefono').Asstring
Bye
A.

una tabella, dei valori selezionati da un'altra.
Se posso darti un consiglio derivante dalla mia esperienza: evita del
tutto i componenti data-aware.  Usa una ComboBox normale, caricaci
dentro il contenuto della tabella di lookup.  Una volta che hai il
selezionato il valore, esegui una query sulla tabella di lookup e
prelevi anche il secondo dato.
P.S.: sei pugliese ?
-- 
Andrea Laforgia
#exclude <windows.h>

 dentro il contenuto della tabella di lookup.
Io non uso questo controllo se non nel caso in cui il dataset usato come
fonte dati ha al massimo 15/20 records.
Se già sono di +, preferisco una form di selezione creata da me.
Vorrei conoscere i motivi del tuo scetticismo su questa cosa.
Certo è che usando un cursore unidirezionale per la lettura degli items, a
partità di numero di records da leggere questa dovrebbe essere + veloce.
Io, se so per certo che il dataset usato come fonte avrà un numero molto
limitato di voci (diciamo inferiore a 20...) magari la uso.
Se però esiste anche una minima possibilità che i records diventino +
numerosi, la mollo e creo una form modale di selezione.
In primis per le performance.
Inoltre, trovo scomodo una combo da cui scegliere troppe voci.
Infine, non mi piace che l'utente per selezionare qualcosa debba aspettare
che io carico n records di cui magari non sa che fare...
A

Vorrei conoscere i motivi del tuo scetticismo su questa cosa.
Precisiamo che le performance sono *identiche*.
La DBLookupComboBox fa semplicemente del lavoro per te, ma la velocità
con cui lo fa è la stessa che se fossi tu a caricare manualmente.  
Io ho imparato a diffidare dei componenti data-aware per una varietà
di motivi (essenzialmente, preferisco avere io il controllo
dell'input) e quindi evito di usarli.


Non ho capito se la domanda era rivolta a me, comunque  sono pugliese.
Premesso cioil mio problema era il seguente: ho una lista di utenti, circa
200 che ho inserito in un Db (utenti) dove ci sono inseriti nome dell'utente
n° di tel e indirizzo. Da'altronde avevo gia creato un altro Db (dati_ut)in
cui inserire i dati sopra citati, piu altri dati che potevano cambiare di
volta in volta. Ecco cosa ho fatto: ho creato un DBLookupComboBox per la
selezione del nome, e per avere un minimo di funzioni di ricerca,
selezionando il nome mi inserisce atuomaticamente il n° tel in un Dbedit
collegato al Db dati_ut, per inserire anche l'indirizzo ho scritto la
seguente riga: dati_utindirizzo.AsString := utentiindirizzo.AsString;
Per ora funziona, ma non ho avuto modo di testare velocità ed eventuali
problemi.
Ciaooooooooo

 con cui lo fa è la stessa che se fossi tu a caricare manualmente.
il dataset usato come listsource non può essere unidirezionale.
Se tu usi un dataset unidirezionale la scorrimento non dovrebbe essere +
veloce?
Magari il tempo guadagnato qui lo perdi per caricare gli items nella combo?
A.

il dataset usato come listsource non può essere unidirezionale.
Chi l'ha detto ?


collegato al Db dati_ut
Questo genere di elaborazione, però, può crearti dei casini.  
Se ho due utenti che hanno lo stesso nome, posso ottenere risultati
inattesi.  In particolare, qualsiasi tipo di ricerca che abbia
necessità di restituire risultati precisi (l'indirizzo di Mario Rossi
che hai selezionato deve essere quello di *quel* Mario Rossi) non può
pasarsi su un parametro descrittivo (il nome) ma su uno univoco (es.
la chiave primaria).  


 Chi l'ha detto ?
E come fa a gestire lo scroll all'indietro?Si mette le righe in memoria??
Spero di no...!
A.


Ciao Albertoneeeee!!!!
In poche parole lo "scroll" non è altro che una locate, quindi e' come se fosse bidirezionale.
-----------------------------
Preso dall'help di delphi:
TDBLookupControl.LocateKey
Locates the value specified by KeyValue in the lookup dataset.
Description
LocateKey is used internally to look up key values in the lookup dataset so that the control 
can find the appropriate display values.
LocateKey calls the lookup dataset’s Locate method, passing in the current values of KeyField and KeyValue. 
If the key value is found, LocateKey positions the lookup dataset on the record with the matching value and returns True. 
Otherwise, it returns False.
-----------------------------
Morde.
morde [at] programmer [.] net

 In poche parole lo "scroll" non è altro che una locate, quindi e' come se
fosse bidirezionale.
Capisco! Tnx
A.


No, sono di Varese! 


se passi x MilanCity fai un fischio
A


ok
