@fsurfing
Sto utilizzando la tua classe domanda sciocca forse sono un po' arruginito... i dati sono assegnati all'array float[] Data.
Te assegni poi i dati con l'istruzione:
.Data = [22.0, 33.0, 45.0, 22.0, 45.56, 2.0, 5.0]
Se volessi assegnare i valori da un recordset di dati, esempio:
myresult = mycon.ExecuteSql("select peso from tbDAILY ORDER BY gma")
come collego il recordset myresult all'array, con cLine.data.add?
Il seguente codice mi da' null object:
DIM chart2 AS NEW cChart
DIM x AS Integer
DIM myresult AS Result
mycon.Connect("alimenti.db")
myresult = mycon.ExecuteSql("select peso from tbDAILY ORDER BY gma")
myresult.MoveFirst
x = 0
WITH chart2
.Title = "Peso"
.Height = 200
.Width = 420
FOR EACH myresult
x = x + 1
.Data.Add(myresult!peso)
NEXT
.Forecolor = Color.Red
.Linewidth = 2
.Foreground = Color.LightGray
.writeline
END WITH
PictureBox2.Picture = chart2.picture
il recordset contiene 49 records il campo peso è float come l'array
Grazie di cuore
Acc... ora non ho Gambas sotto mano, e mano la libreria.
Però il pacchetto dovrebbe avere un qualche esempio a corredo...
i dati sono inseriti nell'esempio con questa modalità:
.Data = [22.0, 33.0, 45.0, 22.0, 45.56, 2.0, 5.0, 34.9, 34.0, 56.0, 67.0, 56.9]
nella classe cline prova a sostituire la line
in
PUBLIC Data AS new Float[]
Il minimo che posso fare è mandarti lo studio della dieta a zona :P...domanda, supponiamo di inserire nell'array di dati due valori positivi e uno pari a zero (cosa possibile) che deve cmq essere evidenziato...mi esce un mathematical error nella riga di codice seguente:
...
Minimo = Int(((Minimo / (10 ^ (Int(Log(Minimo) / Log(10))))) - 0.5) * 2) / 2 * (10 ^ (Int(Log(Minimo) / Log(10))))
....
ho ovviato modificandolo cosi' ma vorrei avere conferma della giustezza, mi sembra che vada:
IF Minimo < 0 THEN
Minimo = - Int(((- Minimo / (10 ^ (Int(Log(- Minimo) / Log(10))))) + 0.5) * 2) / 2 * (10 ^ (Int(Log(- Minimo) / Log(10))))
ENDIF
IF Minimo > 0 THEN
Minimo = Int(((Minimo / (10 ^ (Int(Log(Minimo) / Log(10))))) - 0.5) * 2) / 2 * (10 ^ (Int(Log(Minimo) / Log(10))))
ENDIF
ancora, per togliere le etichette sull'asse delle ascisse (troppo piccole non si leggono) cosa devo modificare? Grazie :-*
Scusa andy, presumo tu usi un database...
se sì, è sufficiente agire con le query, raggruppando le informazioni in base a dei criteri.
Nel caso che hai evidenziato, tu hai dati contenuti nell'arco di un anno, ovvero 12 mesi. Adesso non sò che tipo di grafico tu devi produrre, ma avendo i valori numerici, giornoxgiorno, o mesexmese, o anche pure secondoxsecondo, il grafico, viste le tue premese, dovrebbe riportare il sunto diviso per singolo mese, ovvero 12 barre (o altro) nell'arco di un anno.
Esempio: avendo due campi di tabella, di uno riportante il valore in peso e l'altro il giorno di riferimento, la quesry potrebbe essere così:
select month(data_field), sum(value_field) from tabella group by month(data_field) order by mount(data_field)
o, usando gli alias, se permesso dal db
select month(data_field) as mese, sum(value_field) as peso from tabella group by mese order by mese
Tutto ciò risponde alla tua domanda?