Una griglia speciale
Articolo di: Ernest Morariu ©
Torino, 19 Novembre 2001
ernestmorariu@libero.itLivello Avanzato
Il presente articolo è suddiviso in quattro parti:
1) Griglia speciale ( il presente )
2) Schema a blocchi dell'oggetto Grids
3) Descrizione del metodo FillGrid
4) Descrizione dei metodi e degli eventi della grid
Per questo articolo è disponibile il seguente File: Grids.zip che contiene: GridS.VCX & VCT libreria che contiene la classe GridS (che e' l'oggetto di questo
articolo)
ClsDefs.prg - file con delle definizioni per le textbox, combobox, checkbox e column
Che vengono usati della classe GridS
Trova.SCX & SCT e' usata nell'esempio Esempi:
GridS.SCX & SCT form esempio che usa la classe GridS
MGMOVI.DBF tabella usata nella form EsempioGridS
XCOMBO.DBF tabella usata nella form EsempioGridS
Come si usa l'esempio ?
-Metti tutti i file in una cartella(ad esempio c:\xx\ )
-lancia VFP
-nell finestra di commandi scrivi esegui
CD C:\XX
DO FORM EsempioGridS.scx
Che cos'è GridS ?
GridS e' una griglia che deriva dalla classe Grid di VFP .GridS facilita a :
1. fare vedere solo certi campi dalla tabella;
2. scrivere codice per gli eventi Click, RightClick, KeyPress della Headers e/o delle celle in uno solo posto ;
3. decidere il tipo della cella (textbox, combobox, checkbox);
4. impostare delle caratteristiche delle colonne e degli oggetti inclusi in una colonna
E' una classe i cui vantaggi si vedono soprattutto quando si lavora con delle tabelle per quale non si conosce la struttura (al momento dello sviluppo) .Nuovi metodi della classe GridS
FillGrid() (uno dei piu' importanti) E' il metodo che viene usato per "riempire il contenuto di una griglia"
Vedere anche i dettagli e le modalità d'uso di questo metodo.CellClick() E' il metodo-evento che si invoca ogni volta si fa un Click in una cella della griglia CellRightClick() E' il metodo-evento che si invoca ogni volta si fa un RightClick in una cella della griglia CellDblClick() E' il metodo-evento che si invoca ogni volta si esegue un DoubleClick in una cella della griglia CellKeyPress() E' il metodo-evento che si invoca ogni volta si preme un tasto in una cella della griglia CellInteractiveChange() E' il metodo-evento che si invoca ogni volta si fa un RightClick sulla testa di una colonna della griglia HeaderRightClick() E' il metodo-evento che si invoca ogni volta si fa un RightClick sulla testa di una colonna della griglia SetOtherCaracteristics() E' il metodo-evento che si invoca ogni volta si aggiunge una nuova colonna nella griglia ShowMeEmpty() Metodo usato per vedere una griglia vuota (con tre campi fittizi)
L'evento Init chiama questo metodo se non trova delle informazioni sui dati che deve far vedere.
Non e' solo di uso interno.
Non ha nessun parametro.Init() E' stato soprascritto in modo da mostrare all'avvio della form i dati specificati nelle proprietà cAlias, a_Fields, a_Titoli, oppure, in mancanza di queste informazioni, da mostrare una griglia con tre colonne vuote.L'evento Init riceve anche dei parametri con significati uguali alle proprietà di cui sopra. Se questo evento riceve i parametri, allora esso non guarda più le proprietà della griglia, vale a dire che i parametri hanno la precedenza rispetto alle proprietà. 8. Altri metodi di utilità interna della classe
Proprietà
cAlias - (opzionale) rappresenta l'alias della tabella di cui si devono mostrare i campi
a_Fields -(opzionale) elenco stringa con i nomi dei campi che si mostrano
a_Titles - (opzionale) elenco stringa con i titoli da usare nelle Headers della griglia
Queste proprietà sono le stesse con i parametri trasmessi al metodo FillGrid
Sono state create per dare la possibilità di specificare in modo iterattivo i parametri del metodo FillGrid.
Quando si esegue la form che contiene una grid GridS, l'evento Init della griglia guarda le proprietà di cui sopra e, se le trova, mostra i campi specificati, altrimenti, mostra una griglia vuota con tre campi fittizi.
Vedi la funzione FillGrid per le sintassi dei valori possibili di queste proprieta'.
Come si usa GridS?
1. In modo interattivo
- apri una nuova form
- nella finestra bara degli strumenti "Toolbar" fai click sul pulsante Add, punta sul file Grids.vcx
- trascina la griglia dalla tollbar sulla tua form
- se vuoi che la griglia mostri dei dati all'apertura della form, devi impostare dei valori per le proprietà cAlias, a_Fields,a_Titles della griglia.
- se le proprietà sono vuote, allora la griglia fara vedere tre campi vuoti.
2. In codice :
Thisform.NewObject("Grids1","Grids.vcx")
Thisform.Grids1.Visible=.T.
A questo punto la griglia mostrerà tre colonne vuote.
Se si vogliono mostrare dei dati, prima di renderla visibile (quindi prima di Thisform.Grids1.Visible=.T. ) si deve fare una chiamata del metodo FillGrid() :
Thisform.GridS1.FillGrid(cAlias, cElencoCampi, cElencoTitoli)
Oppure
Set classlib to Grids.vcx
Thisform.AddObject("Grids1","Grids",cAlias,cElencoCampi,cElencoTitoli)
Si nota che si mandano anche dei parametri cAlias, cElencoCampi, cElencoTitoli all'evento Init della GridS. In questo caso, la procedura Init non guarda più le proprietà cAlias, a_Fields, a_Titles della griglia, invece costruisce la griglia con le informazioni mandati tramite i parametri del metodo AddObject.
Vedere anche
-La funzione FillGrid per le sintassi dei valori possibili dei parametri.
A parte quello che la griglia deve fare all'esecuzione della form , il contenuto della griglia si può cambiare in modo che siano mostrati altri dati anche da altre tabelle, basta che si richiami il metodo FillGrid() della griglia con altri parametri.
Vedere anche gli articoli
- Il metodo FillGrid()
- L'oggetto Grids
- I metodi e gli eventi della classe GridS
© Articolo: Ernest Morariu Novembre 2001 - Riproduzione vietata
© FoxPro e Visual FoxPro sono un marchi registrati da Microsoft Corporation
dal 22 Giugno 1999