Home Page
ADO Data project

v.2.0.1
con codice
sorgente

Visitatori dal 06 maggio 2007

Ultimo aggiornamento: 22 Maggio, 2008

E siamo arrivati così alla 2^ parte di questo progetto didattico.

Nella 1^ parte abbiamo visto come gestire l'accesso ai dati senza usare il controllo ADODC, ma tramite l'uso di semplici classi.

In questa seconda parte vedremo alcune nuove features riguardanti l'interfaccia utente e altre comode funzionalità.

FilterBar, ovvero il top della Ricerca!

La ricerca è stata sempre uno dei punti cruciali di ogni applicazione, per ovvie ragioni: se i dati inseriti non si trovano, a che servono? In questo progetto ho voluto ricreare (con non pochi stratagemmi) la carateristica FilterBar simile a quella della fantastica TrueDBGrid della ComponentOne (www.componentone.com) che io uso normalmente. In pratica, grazie ad una riga supplementare posizionata sopra la griglia, è possibile creare 'al volo' dei filtri di ricerca multipli, cioè basati su più campi.

La potenza di questa caratteristica la apprezzerete in particolar modo qunado andrete alla ricerca di un Comune. Ah già! Non ve l'ho ancora detto.
In questa versione troverete una chicca: un database MDB con tutti i Comuni d'Italia, aggiornato al 2006 (10 MB di dati!!!). Il database è particolarmente interessante perchè, come vedrete, elenca anche tutti i CAP in cui sono suddivise le aree all'interno delle grandi città.
Nella figura sotto vedete che ANZOLA DELL'EMILIA appare 4 volte (anche se il CAP è identico per tutte), così ARGELATO, ecc. Ma se andrete a guardrvi BOLOGNA, vi renderete conto che vi sono numerosi CAP tutti diversi, perchè rappresentano le zone che sono suddivise in base alla via (Topo) e a volte anche al numero civico (nCivico).

Tornando alla ricerca, basta osservare la figura qui sotto per rendersi conto: la riga in giallo è la FilterBar. Digitando alcuni dati in essa, i dati del recordset sottostante saranno filtrati di conseguenza. Nell'esempio vi mostro che avendo digitato BO nel campo Provincia, mi trovo elencati solo i comuni della provincia di Bologna.

A questo punto potrei applicare ulteriori filtri (uno per ogni colonna), vediamo un altro esempio:

In questo caso ho applicato 3 filtri sulle colonne: Topo, Dugt e Provincia. Seleziono la riga che mi interessa poi premo Invio (oppure doppio clic con il mouse) ed i dati del comune li posso trasferire ad una seconda finestra che nel nostro caso è quella dei Recapiti.

Ad esempio, se osservate l'immagine sotto, vedete che a destra del campo Comune, è presente una freccia blu. Questa indica che in quel campo è possibile eseguire una ricerca (come ho sopra indicato).

Per avviare la ricerca si preme il tasto funzione F3, oppure si fa clic sulla freccia blu, e si apre la finestra di ricerca (sopra). Una volta selezionato il Comune, i dati sono trasferiti automaticamente nei relativi campi: Comune, CAP e Provincia (l'Indirizzo e lo Stato sono esclusi).

Invito a fare diverse prove per rendervi conto della grande comodità di questa griglia. Considerando che, come nel caso dei Comuni, la tabella contiene decine di migliaia di record, le prestazioni sono ottime.

Notare che questa FilterBar può essereimplementata anche nella griglia Anagrafica, ma lascio questo piacere a chi ha voglia di cimentarsi.

E-mail e URL

Altra nuova caratteristica è quella di poter inviare una semplice e-mail al cliente corrente oppure di visitare l'indirizzo web.
Vediamo allora come si presenta adesso la Scheda Cliente:

Nel caso in cui tra i recapiti ne esista uno di tipo E-mail, se lo si seleziona si abilita nella toolbar il pulsante e-mail. Basta fare clic e si apre la finestra del vostro programma di posta elettronica predefinito (non importa quale sia) per l'invio di un messaggio all'indirizzo indicato.

Riguardo all'apertura della pagina web, lascio a voi l'implementazione: nel progetto trovate un modulo BAS che include le due funzioni apposite (SendMail e OpenUrl).

 

Multi-casting avanzato

Ricordate la rozza modalità di multi-casting della precedente versione, in cui era necessario dover creare una variabile oggetto per ogni controllo?

Bene, dimenticate tutto! Ora con 2 righe di codice, e sottolineo DUE, otterrete lo stesso risultato grazie a due nuovi classi: CForm e CControls.
Un ulteriore vantaggio è che anche se aggiungete nuovi controlli, non dovrete modificare niente di niente, quando prima eravate costretti ad aggiungere la variabile oggetto del nuovo controllo. Insomma, inserite le due righe di codice e poi potete dimenticarvene.

Logicamente, se intendete gestire nuovi Tipi di controlli diversi, dovrete aggiungere nella classe CControls il codice necessario al nuovo 'arrivato'.

 

Naturalmente, se trovate qualche errore nel progetto, vi sarei grato se me lo segnalerete.

 

Il progetto in codice sorgente è disponibile nel nuiovo sito di VBCorner, all'indirizzo

http://nuke.vbcorner.net/Progetti/VB60/ADODataProject201/tabid/78/Default.aspx