Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Il controllo MSChart (Seconda parte)

Una volta compiute tutte le operazioni di inserimento dei dati nel controllo MSChart, si può passare ad esempio a leggere da codice uno dei valori che compongono il grafico.
Questo significa che il valore in questione non sarà solamente leggibile ma anche modificabile a proprio piacimento.
Consideriamo il primo esempio dell'articolo precedente, nel quale il grafico è stato generato da una sola serie di valori. Il codice relativo era:

Private Sub Form_Load()
Dim MatriceDati(1 To 10)
For i = 1 To 10
MatriceDati(i) = i * 2
Next i
End Sub

Se ad esempio volessimo visualizzare una finestra di messaggio contenente ad uno ad uno tutti i valori delle colonne del grafico:

For i = 1 To MSChart1.ColumnCount
MSChart1.Column = i
MsgBox MSChart1.Data
Next i

Questo significa indicare volta per volta la colonna desiderata (attraverso la proprietà Column) e quindi leggerne il valore (attraverso la proprietà Data).
Come già detto la proprietà Data non è di sola lettura: si può modificare i valori di ogni colonna decidendo ad esempio di dimezzarli tutti.
Allora, sempre tenendo presente il codice di base per la creazione del grafico a serie singola possiamo aggiungere:

For i = 1 To MSChart1.ColumnCount
MSChart1.Column = i
MSChart1.Data = MsChart1.Data / 2
Next i

In questo modo il valore più alto non sarà più 20 ma 10 e via via anche tutti gli altri valori saranno divisi per due.
Le cose finora sono relativamente semplici per il fatto che il grafico contiene un'unica colonna: nell'esempio infatti il grafico non è suddiviso verticalmente, inoltre l'intestazione di colonna è solamente una: R1.
L'immagine seguente servirà a chiarire meglio le idee:


Se però fossimo alle prese con un grafico multiserie le cose si complicano in quanto la colonna non sarà unica e per questo si dovrà specificare in quale serie si sta lavorando.



Se volessimo quindi verificare il terzo valore della seconda serie, dovremo aggiungere al codice per la composizione del grafico, una linea di codice che specifichi la serie, una che specifichi la colonna ed una che visualizzi i dati così collezionati.
Scegliendo il terzo valore della seconda serie, si andrà a leggere la colonna evidenziata nell'immagine sottostante.




Private Sub Form_Load()
Dim MatriceTrid(1 To 5, 1 To 3)
For i = 1 To 5
MatriceTrid(i, 1) = i & " " & i * 2 'prima serie
MatriceTrid(i, 2) = i 'seconda serie
MatriceTrid(i, 3) = i * (-2) 'terza serie
Next i
MSChart1.ChartData = MatriceTrid
MSChart1.Column = 2
MSChart1.Row = 3
MsgBox MSChart1.Data
End Sub

Com'era facilmente intuibile, il valore ritornato dalla finestra di messaggio è -6, proprio il valore della terza colonna della serie verde.
Anche in caso di matrice multidimensionale tutti i dati sono modificabili in fase di esecuzione. Si può ad esempio modificare il secondo valore della prima serie fino a farlo corrispondere a +20.

Private Sub Form_Load()
Dim MatriceTrid(1 To 5, 1 To 3)
For i = 1 To 5
MatriceTrid(i, 1) = i & " " & i * 2 'prima serie
MatriceTrid(i, 2) = i 'seconda serie
MatriceTrid(i, 3) = i * (-2) 'terza serie
Next i
MSChart1.ChartData = MatriceTrid
MSChart1.Column = 1
MSChart1.Row = 2
MSChart1.Data = 20
End Sub

ed ecco che infatti la seconda colonna rossa s'impenna sorpassando tutte le altre:


Una proprietà interessante è sicuramente AllowDynamicRotation che permette all'utente della nostra applicazione di ruotare il grafico (solamente se tridimensionale!). La rotazione avviene premendo il tasto CTRL che visualizza il puntatore di rotazione.
Ecco nell'immagine sotto un esempio:


L'effetto visualizzato si ottiene impostando:

MSChart1.AllowDynamicRotation = True

La proprietà ActiveSeriesCount restituisce invece il totale delle serie presenti nel grafico. Nell'ultimo esempio ActiveSeriesCount avrebbe ritornato 2 (la prima + la seconda serie).


Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it