Una griglia speciale

Articolo di: Ernest Morariu ©
Torino, 19 Novembre 2001
ernestmorariu@libero.it

Livello 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

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

 



Data: 19/11/2001
webmaster@foxitaly.com

 

dal 22 Giugno 1999