Einzelnen Beitrag anzeigen

Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#1

TClientDataSet in Verbindnug mit TDBChart

  Alt 24. Sep 2013, 16:40
Datenbank: - • Version: - • Zugriff über: -
Hi zusammen,
ich habe ein mittelschweres Problem mit meinem TClientDataset in Verbindung mit einem TDBChart.

Ich erstelle bis auf das Chart alles dynamisch. Da ich die betreffenden Zeilen nicht aus meinem Projekt entnehmen will, hab ich das mal in einem kleinen Test nachgestellt. Auch hier zeigt sich genau das gleiche Verhalten. (Ja, ich weiß, die Namensgebung ist suboptimal. Ist wie gesagt nur zur Demo. )

Delphi-Quellcode:
  FGraph:=TLineSeries.Create(DBChart1);
  FGraph.ParentChart:=DBChart1;

  FCDS:=TClientDataset.Create(nil);
  FDS:=TDataSource.Create(nil);

  FDS.DataSet:=FCDS;
  FGraph.DataSource:=FDS;

  with FCDS.FieldDefs do
  begin
    Clear;
    Add('Zeitstempel', ftDateTime);
    Add('Wert', ftFloat);
  end;

  FCDS.CreateDataSet;

  FGraph.XLabelsSource:='Zeitstempel';
  FGraph.YValues.ValueSource:='Wert';

  FCDS.FileName:='C:\Verzeichnis\set.cds';
  FCDS.SaveToFile('', dfBinary);
  FCDS.IndexFieldNames:='Zeitstempel';
Nun nützt mir ein leeres DataSet natürlich herzlich wenig. Daher befülle ich das Set manuell mit folgender Sequenz.
Delphi-Quellcode:
  FCDS.Open;
  FCDS.Edit;
  FCDS.Append;
  FCDS.FieldByName('Zeitstempel').AsDateTime:=now;
  FCDS.FieldByName('Wert').AsFloat:=StrToFloat(IntEdit1.Text);
  FCDS.Post;
  FCDS.SaveToFile;
Dabei tritt das Problem auf, dass die Series immer nur genau einen Datenpunkt enthält - nämlich den letzten. Verbinde ich die DataSource aber mit einem DBGrid, sehe ich dort alle Daten, nur in der Series nicht. Kurioserweise passt sich der Datenpunkt im DBChart auch an, je nachdem welchen Punkt ich durch Klick auf das DBGrid auswähle. Daher scheint es wohl einfach nur ein Darstellungsproblem zu sein.

Kann mir jemand den entscheidenden Hinweis in die richtige Richtung geben? Die Daten scheinen ja offenbar vorhanden zu sein.


Ich bedanke mich im Voraus für jegliche Hilfe!




PS: Gesucht und gegoogelt habe ich natürlich. Gefunden aber leider nichts.
Delphi-Version ist - bitte nicht lachen - Delphi 5.
  Mit Zitat antworten Zitat