Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TClientDataSet in Verbindnug mit TDBChart (https://www.delphipraxis.net/176752-tclientdataset-verbindnug-mit-tdbchart.html)

Sven M. 24. Sep 2013 16:40

Datenbank: - • Version: - • Zugriff über: -

TClientDataSet in Verbindnug mit TDBChart
 
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.

Bummi 24. Sep 2013 17:59

AW: TClientDataSet in Verbindnug mit TDBChart
 
Scheinen nur zwei Kleinigkeiten zu sein
Delphi-Quellcode:
  FGraph.DataSource := FCDS; // Dataset statt Datasource
  DBChart1.LeftAxis.Automatic := true;

Sven M. 25. Sep 2013 13:13

AW: TClientDataSet in Verbindnug mit TDBChart
 
Die erste Zeile war's! Vielen Dank! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz