Newsgroup: it.comp.lang.vo-clipper
Titolo: Autocomposizione su Single Line Edit

In una finestra di una applicazione VO2.5, gestisco i dati anagrafici dei
clienti. Vorrei evitare che nel campo della località di residenza venissero
inseriti i nomi degli stessi Comuni in modo diverso (ad es. San Giovanni in
Persiceto potrebbe essere scritto S.Giovanni in P. oppure San Giov.P.
ecc.ecc.).
Il database dei CAP che ho scaricato dal sito delle Poste contiene più di
12.000 record per cui avrei scartato l'idea di utilizzare una combo box a
causa del ritardo che si verificherebbe al momento della visualizzazione
della finestra utilizzando  metodo FillUsing() per caricare la combo. In
un'altra occasione simile, con circa 8.000 record, ho usato un timer per
caricare i dati in un momento successivo a quello della visualizzazione
della finestra ma anche così, pur evitando l'attesa con schermo vuoto, per
poter interagire con i controlli bisogna apsettare alcuni secondi e questo
francamente non è il massimo. Vorrei trovare un sistema alternativo simile
all'autocomposizione che si vede in tante applicazioni Microsoft. Il
problema è come fare. Ho provato usando il metodo EditChange della Sle ma i
miei maldestri tentativi non fanno che mandare in crash il sistema.
Avete qualche suggerimento?
Grazie ed un caro saluto a tutti.
Roberto Cordini

In genere io inserisco un campo CAP ed uno PROV che provvedo a riempire
quando il comune viene digitato correttamente, altrimenti restano vuoti. In
fase di controllo, se questi campi sono vuoti vuol dire che non hanno
digitato bene il comune. In più gli aggiungo un pulsante di ricerca che apre
una piccola datadialog con l'elenco dei comuni nel quale possono ricercare
quello desiderato e confermare il dato che viene inserito automaticamente
nel SLE.
Saluti.
                                                Francesco Leo

 ha scritto nel messaggio
news:K4Re8.17573$Ns4.7...@news2.tin.it...

Grazie per la risposta lampo! Quello che mi dai è senz'altro un buon
suggerimento, ma nel caso di Comuni con lo stesso nome appartenenti a
diverse provincie come fai a proporre il CAP e la sigla provincia corretti?
Ciao.
Roberto Cordini

Io invece ho seguito la strada piu' ovvia, una DialogBox che si attiva con
un minipulsante a destra del campo di inserimento e che presenta un
DataBrowser del DBase (12000 record sono molti!). Una SingleLineEdit mi
permette la ricerca ed una Combo mi attiva un indice diverso.
Di default seleziono il campo COMUNE, opzionalmente il CAP, la PROVINCIA,
PREFISSO. Introduco alcune lettere nel SL ed eseguo una SoftSeek nel DBase.
Confermo quindi il rigo della tabelle e restituisco i campi in un vettore
riempiendo in un colpo solo i dati relativi alla citta'.
Certo che se superi i 100 elementi e' da pazzi caricarli in una lista,
esistono i Browser proprio per questo!
Se ti interessa ti mando qualcosa, uno snap della DLG ed eventualmente il
codice.


Mi sembra poco probabile che esistano 2 comuni con lo stesso nome, tant'è
che se un comune esiste in più di una provincia viene accompagnato da un
suffisso del tipo S. CESARIO "DI ROMA" o "DI LECCE". Ma quando ci sono dubbi
i miei clienti utilizzano il pulsante di ricerca che apre la finestra già
posizionata sulle possibili scelte.
Ciao
                                        Francesco Leo

Una soluzione simile l'adotto anch'io:
un doppio click sulla SLE mi apre il databrowser dove posso scegliere,con
una ricerca incrementale, il record voluto, se il record non esiste lo creo
al momento e lo esporto.
Ciao
Roberto
"pimpa" <xxx@xx.x> ha scritto nel messaggio
news:og0f8.33035$v7.12...@twister1.libero.it...


 al momento e lo esporto.
Ok, questo mi andava bene per il singolo campo ma non avevo tempo di
risolvere il riempimento simultaneo di piu' campi.
Ecco perchè ho preferito un piccolo pulsante di ricerca. Comunque il
concetto e' quello.

Ho un applicazione che chiede il codice di un articolo, doppio clic sul
codice, si apre il databrowse degli articoli, scelgo l'articolo e mi vengono
esportate diverse informazioni che vanno a riempire varie SLE
Infatti quando apro la datawindow passo un array di oggetti(le varie SLE)
Ciao
Roberto
"MasterSlave" <xxx@xx.x> ha scritto nel messaggio
news:_C1f8.33305$v7.12...@twister1.libero.it...


Faccio tutto in EditFocusChange riempiendo una combo dei comuni, con questa
logica:
1. chiedo prima la provincia in combo
2. l'uscita dalla combo provincia carica i comuni della provincia
3. l'uscita dalla combo comuni imposta il CAP nella successiva SLE
La velocità è dignitosa anche su Pentium 1
Ciao
Massimo
"Robby" <roberto...@NOXSPAMiol.it> ha scritto nel messaggio
news:a5gmal$85h$1...@zamboni.dsnet.it...


Grazie a tutti per i preziosi suggerimenti. Alla fine ho adottato questo
sistema: l'utente può digitare il CAP, la località e la sigla Provincia
oppure cliccare su di un bottone che apre una finestra con la quale si può
ricercare il comune desiderato. Selezionando un comune anche le Sle del CAP
e della provincia vengono riempite con i dati corretti. Nel caso l'utente
digiti direttamente il nome del comune e questo non risulti corretto, la
finestra con il databrowser sulla tabella dei comuni si apre automaticamente
con il record selezionato in base a quanto ha digitato l'utente.
Ciao.
Roberto Cordini