Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dynamisches DBChart befüllen (https://www.delphipraxis.net/150519-dynamisches-dbchart-befuellen.html)

AnyKey 19. Apr 2010 18:51

Datenbank: SQLite • Version: 3.2.2 • Zugriff über: UniDAC

Dynamisches DBChart befüllen
 
Hi,

wie kann ich ein dynamisch erstelltes DBChart befüllen? Ich habe einfach mal ein DBChart genommen, eingestellt und den Code kopiert, sieht folgendermaßen aus:

Delphi-Quellcode:
DBChart := TDBChart.Create(Self);
    Series1 := TPieSeries.Create(Self);
    with DBChart do
  begin
    Name := 'DBChart';
    Parent := Self;
    Left := 16;
    Top := 8;
    Width := 400;
    Height := 250;
    AllowPanning := pmNone;
    AllowZoom := False;
    BackWall.Brush.Color := clWhite;
    BackWall.Brush.Style := bsClear;
    BackWall.Pen.Visible := False;
    Title.Text.Clear;
    Title.Text.Add('TDBChart');
    AxisVisible := False;
    ClipPoints := False;
    Frame.Visible := False;
    View3DOptions.Elevation := 315;
    View3DOptions.Orthogonal := False;
    View3DOptions.Perspective := 0;
    View3DOptions.Rotation := 360;
    View3DWalls := False;
    TabOrder := 0;
  end;
  with Series1 do
  begin
    Name := 'Series1';
    Parent := Self;
    Marks.ArrowLength := 8;
    Marks.Visible := True;
    DataSource := UniTable;
    SeriesColor := clRed;
    OtherSlice.Text := 'Andere';
    PieValues.DateTime := False;
    PieValues.Name := 'Torte';
    PieValues.Multiplier := 1.000000000000000000;
    PieValues.Order := loNone;
  end;
Jetzt bekomme ich aber jedesmal wenn ich das Chart erstellen will folgende Meldung:
'Kein ParentChart zum validieren der Datenquelle'
Was mache ich falsch? Kann mir bitte jemand helfen? Ich nehme mal an das die Spalten aus denen das Diagramm erstellt werden sollen auch noch fehlen oder?

Gruß
AnyKey

Chemiker 19. Apr 2010 21:53

Re: Dynamisches DBChart befüllen
 
Hallo AnyKey,

die Series1 muss mit dem DBChart verbunden werden.

Delphi-Quellcode:
Series1.ParentChart:= DBChart;
Als weiteres muss die Series1 mit der Datenquelle verbunden werden.

Delphi-Quellcode:
Series1.DataSource:= {DataSet};
(hier muss von SQLite.Dataset eingetragen werden.)

Bis bald Chemiker

AnyKey 20. Apr 2010 07:25

Re: Dynamisches DBChart befüllen
 
Hi, danke für deine Antwort!

Also ich habs jetzt so:
Delphi-Quellcode:
    DBChart := TDBChart.Create(Self);
    Series1 := TPieSeries.Create(Self);
    with DBChart do
    begin
      Name := 'DBChart';
      Parent := Self;
      Align := alClient;
      AllowPanning := pmNone;
      AllowZoom := False;
      BackWall.Brush.Color := clWhite;
      BackWall.Brush.Style := bsClear;
      BackWall.Pen.Visible := False;
      Title.Text.Clear;
      Title.Text.Add('tblProjekt');
      AxisVisible := False;
      ClipPoints := False;
      Frame.Visible := False;
      View3DOptions.Elevation := 315;
      View3DOptions.Orthogonal := False;
      View3DOptions.Perspective := 0;
      View3DOptions.Rotation := 360;
      View3DWalls := False;
      TabOrder := 0;
    end;
    with Series1 do
    begin
      Name := 'Series1';
      Parent := Self;
      ParentChart := DBChart;
      Marks.ArrowLength := 8;
      Marks.Visible := True;
      SeriesColor := clRed;
      DataSource := UniTable;
      OtherSlice.Text := 'Andere';
      PieValues.DateTime := False;
      PieValues.Name := 'Torte';
      PieValues.Multiplier := 1.000000000000000000;
      PieValues.Order := loNone;
    end;
  end
Das erstellen funktioniert jetzt ohne Fehlermeldungen, allerdings bekomme ich kein Diagramm angezeigt... Was fehlt noch?

Chemiker 20. Apr 2010 09:50

Re: Dynamisches DBChart befüllen
 
Hallo AnyKey,

Du musst noch das Feld in die Series eintragen.

z.B. Die Datenbank besteht aus 2 Felder nennen wir sie mal [MW_DATUMUHRZEIT] und [MW_MW] in der Datenbank werden Messwerte zu einem bestimmten Datum und Uhrzeit abgelegt.

Dann müsste man die Felder mit der Series verbinden z.B. der DateTimeStamp auf die x-Achse:

Delphi-Quellcode:
Series1.XLabelsSource:= ´MW_DATUMUHRZEIT‘;
Die Messwerte sollen auf der y-Achse angezeigt werden:

Delphi-Quellcode:
Series1.yValues.ValueSource:= ´MW_MW‘;
Bis bald Chemiker

AnyKey 20. Apr 2010 10:34

Re: Dynamisches DBChart befüllen
 
Super, danke!!

Sind die Werte bei einem Kreisdiagramm dann genauso gesetzt?

Edit: Ok, habs rausgefunden, funktioniert jetzt!

Wie kann ich das denn machen wenn ich eine Abfrage auf die Datenbank mache? Wie und wo muss ich auf dann auf das Query zugreifen?

Edit: Ok, auch das hat sich erledigt, habs rausgefunden! :)

Danke noch mal für eure Hilfe!

Gruß
AnyKey


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.

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