Newsgroup: it.comp.lang.delphi
Titolo: Iterazione tra due DBLookupComboBox e prelievo dati da DB

Ciao a tutti,
ho qualche problema nel recuperare i dati da DB e visualizzarli nelle
rispettive DBLookupComboBox.
Spiego brevemente cosa mi serve:
da una DBLookupComboBox che chiameremo "ComboRotolo" popolata con il
campo "codice_rotolo" seleziono un valore, da qui prelevo
automaticamente il suo ID (contenuto nella proprietà keyfield) con
tutti gli altri campi associati e che recupero tramite questa riga di
codice:
ZQueryRotolo.Lookup(ComboRotoloMod.KeyField,ComboRotoloMod.KeyValue,
'CAMPODBDAPRELEVARE')
La query infatti fa una select di tutti i campi presenti nella tabella
in modo che io possa prelevarli senza problemi a seconda del record
interessato.
Mettiamo il caso che da "ComboRotolo" selezioni il valore
"RotoloPippo" il cui fornitore associato sia "FornitorePippo". A
questo punto entra in gioco una seconda DBLookupComboBox che
chiameremo "ComboFornitori" e che sarà popolata da tutti i fornitori
presenti nel DB. Quello che devo fare è riuscire a mettere il focus
sul fornitore "FornitorePippo".
Ho provato diverse soluzioni ma senza successo, sapete indicarmi il
modo corretto per farlo?
Grazie mille


Forse non ho capito bene, ma se il contenuto della ComboRotolo cambia, 
tu metterai il codice nell'evento OnChange. Tale funzione troverà il 
codice fornitore con una sqllata e lo visualizzerà in un campo text. La 
seconda combobox ti servirà solo se vi sono più fornitori del prodotto 
in modo da poter sceglierne uno. In questo caso la funzione troverà i 
codici da mettere nella lista della combo. Se la combo è già piena 
basta cercare nella lista tramite un confronto tra stringhe (forse c'è 
una funzione apposita di ricerca, non mi ricordo) e metti il codice 
fornitore trovato in questa maniera come "selected".

Mmmm credo di essermi spiegato male.
Io nel DB ho già tutti i record ma devo dare la possibilità di
modificarli. In pratica seleziono il record che mi interessa tramite
la ComboRotolo per poi recuperare ed inserire il resto dei dati nei
vari edit e combo. Nello specifico, la ComboFornitori deve contenere
tutti i fornitori inseriti nella tabella "fornitori" e settare il
focus sul fornitore del rotolo selezionato tramite la "ComboRotolo".
In questo modo mi trovo il fornitore del rotolo già selezionato ma ho
la possibilità di cambiarlo e selezionarne un'altro dalla lista.
Quello che mi manca è proprio la funzione di ricerca della
ComboFornitore che mi setti il focus sulla voce corretta.
Spero di essere stato più chiaro.
Grazie

 focus sul fornitore del rotolo selezionato tramite la "ComboRotolo".
Se stai usando una DBLookupcombobox e' gia' il comportamento naturale.
ciao
S

Comportamento naturale??? Sarà anche ma dovrò ben dirglielo di mettere
il focus sulla voce corretta.
Esempio, così magari ci capiamo meglio.
Ho il rotolo "Lana" e i fornitori "Pippo" e "Pluto". Il rotolo "Lana"
è stato assegnato al fornitore "Pippo" ma c'è stato un errore, il vero
fornitore è "Pluto". Apro la mia maschera di modifica, nella
ComboRotolo seleziono "Lana", la ComboFornitore si popola con i due
fornitori "Pippo" e "Pluto" e deve essere posizionato il focus sul
fornitore "Pippo" dato che, anche se il dato è errato, quel fornitore
è associato al rotolo "Lana". A questo punto posso modificare il
fornitore e selezionare quello corretto per poi memorizzarlo nel DB.
Ora, come faccio a mettere il focus sul fornitore "Pippo"? Ci sarà
qualche istruzione che mi da la possibilità di verificare tutte le
voci della Combo e settare il focus su quella che voglio.
Grazie

 il focus sulla voce corretta.
No non devi, lo deve fare in automatico
mi auguro che tu abbia :
Tabella rotoli:
Lana
Cotone
Sintetico
...
Tabella Fornitori
Pippo
Pluto
Paperino
...
Tabella Associazioni
Lana - Pippo
Cotone - Paperino
Se usi un DBLookup collegato alla tabella associazioni avrai gia' il
"cursore" sul fornitore giusto.
Guarda l'help
ciao
S