Wie seit Ihr vorgegangen damit das Ganze übersichtlich ist.
Eigentlich geht das ziemlich einfach. Allerdings nur, wenn man weiss, wie. Ist klar.
Zuerst Datenmenge richtig zusammenstellen.
Angenommen die Datenmenge ist vorhanden, dann (stark verkürzt) :
Delphi-Quellcode:
AusgabeDS.close; // zuerst Datenmenge ermitteln
AusgabeDS.SelectSQL.Add ('SELECT * FROM ARTSTAT WHERE');
AusgabeDS.SelectSQL.Add ('ID_ART = :ID AND JAHR = :JAHR ORDER BY MONAT');
AusgabeDS.ParamByName('ID').AsInteger := LeseIntFeld (AusgabeDS,'ID');
AusgabeDS.ParamByName('JAHR').AsString := edVonJahr.Text;
AusgabeDS.open;
while not AusgabeDS.Eof do begin
WertArray [LeseIntFeld (AusgabeDS,'MONAT')] := LeseRealFeld (AusgabeDS,WertFeld);
AusgabeDS.Next;
VerglJahrZaehler := VerglJahrZaehler + 1;
end;
// Die Datensätze werden als 12er Block in Array gelesen und an das TChart übergeben :
for i := 1 to 12 do begin
if WertArray[i] <> 0 then
Series2.AddXY(i,WertArray[i])
else
Series2.AddXY(i,0)
end;
Vor und zurück ginge dann so :
Delphi-Quellcode:
if not AusgabeDS.Eof then begin
chStat.Show;
AusgabeDS.Next
end
else begin
chStat.Hide;
showmessage ('keine weiteren Daten vorhanden !');
end;
Das ist jetzt eventuell noch zu kompliziert, wegen der Monate. Ausserdem ist das jetzt eigentlich vom TChart her nur für Linien-Grafiken brauchbar. Wie das am Besten geht, das ist auch sehr stark von der darzustellenden Datenmenge abhängig !!
wg. roter Kasten : so siehst aus !