Ti ringrazio molto per l' attenzione,
Al di la del codice mi sa che i miei problemi partono un po prima, dal capire come fuziona ll'oggetto db chart (non l ho mai usato).
Cerco di postare quello che ho "fatto":
nelle opzioni della serie gantt vedo questo:
dove "TS" è il campo "start" dell'esempio;
"num" nel campo "Y" SONO I VALORI 1,2,3,
il risultato della mia query "SELECT TS,NUM FROM TABLE ORDER BY TS" è:
8:00 - 1
9:00 - 2
10:00 - 3
11:00 - 1
12:00 - 2
13:00 - 3
in pratica rappresenta uno "stato" (non Nazione ) in cui si trova una macchina:
dalle 8 alle nove si trova nello stato 1
dalle 9 alle 10 si trova nello stato 2
dalle 10 alle 11 si trova nello stato 3
dalle 11 alle 12 torna a trovarsi nello stato 1
dalle 12 alle 13 torna a trovarsi nello stato 2
dalle 13 alle ( non lo so, essendo l ultima riga ma tendenzialmente vuol dire che da quel momento fino ad ora è ancoranello stato 1)
quello che vorrei avere nel grafica gantt è questo:
aggiungendo i dati a mano riesco ( piu o meno) ad ottenere quello che vorrei, anche se come label sull'asse a sinistra mi scrive l ultimo valore e come legenda vorrei avere "solo" l' indicazione :
quadrato rosa = stato1
quadrato giallo = stato 2
quadrato blu = stato 3
insomma solo ad indicare cosa indicano i colori e non tutti i valori con gli orari, anche perche poi a me servono altri gantt uguali indicanti lo stato di altre macchine.
ma quello che ottengo dando in pasto la query piuttosto che scrivendo a mano i valori è questo:
impostando invece la serie cosi:
quindi togliendo il valore di Y
mi viene un grafico cosi' :
mi manca quindi qualche pezzo, non capisco:
come mai tutte le righe partono dalle 8 se lo "start" parte dalle 8 solo per lo stato 1?
se passo col mouse sopra una riga della legenda, al grafico relativo mi "aggiunge" un pezzettino.
Ho altre domande ma credo che il primo passo sia riuscire ad ottenere quel gantt come da dati manuali.
Immagino che per metterli tutti sulla stessa riga debba ciclare cmq il gantt da codice ed assegnare ad 1(ocmq uno stesso valore) all'asse Y, una cosa tipo:
for i := 0 to Series1.Count do
begin
Series1.YValue[i]:=1;
end;
ma quello che ottengo è una riga lunga dalle 8 alle 13 del colore di stato 3.
insomma sono un attimo in alto mare