![]() |
TDBTeeChart, Pie-Serie, Gruppierungen
Hallo,
im Moment habe ich mehrere Baustellen zu bearbeiten und eine davon ist die DBTeeChart. Ich komme dort nicht so richtig weiter. Was möchte ich: Ich möchte mehrere Pie-Charts auf einer Seite (Lösung über mehrere Serien als Pie). In der Daten- bank gibt es zwei Felder die ausgewertet werden sollen. In dem einen Feld wird ein Zustand abge- bildet (also zu hoch, zu niedrig und normal). In dem zweiten Feld wird der Zeitpunkt des Zustandes abgebildet. (also morgens, mittags, abends) Jetzt möchte ich zb drei Pie-Charts (morgens, mittags, abends) und dort möchte ich den Anteil der Zustände (zu hoch, zu niedrig, normal) als prozentuale Auswertung. In der Datenquelle beim DBTreeChart kann ich zwar mit Anzahl auf das Feld des Zustandes er- mitteln, wie oft zuhoch, zu niedrig etc vorkommt, aber es bezieht sich immer auf alle Daten- sätze und nicht nur auf die morgens, mittags oder abends. :roll: Wo kann ich das einstellen, das für die jeweilige Serie sozusagen per Filter oä nur bestimmte Datensätze ausgewertet werden??? :gruebel: Schon mal Danke für eure Hinweise und merry X-mas :wink: |
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Ohh Mi... :oops: Falsche Rubrik. Kann einer der Mods. das mal in VCL verschieben. :oops:
Danke. |
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Das gehört auch nicht nach VCL sondern bei Datenbanken, denn bei Dir ist die Ermittlung der richtigen Daten noch nicht richtig. Desweiteren wäre wichtig zu wisssen, wie festgestellt wird, was morgens, mittags, abends ist, ein Aufzählungstyp oder wird das über die Uhrzeit ermittelt ? Aber egal wie, Du mußt das mit WHERE eingrenzen. Hoffentlich benutzt er SQL. 8)
|
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Nicht ganz. Also dass das in den Datenbanksektor gehört ist ok. Aber die Datenquelle
der gesamten Chartgrafik (also aller drei Pie-Charts) ist ja eine Datenbank! Wenn ich also mit SQL oder Filteranweisungen zb nur die Werte für abends ziehen würde, wären ja auch die Pie-Charts für morgens und mittags im A..Eimer. :zwinker: Der Bereich, also zu hoch, zu niedrig und normal ist ein Wordfield. Der Tagesbereich, also morgens, mittags, abends ist ein Stringfield (Länge 2). Meiner Meinung nach müsste ich in der jeweilgen Serie (Pie Chart morgens etc) in der Datenquelle eine Selektion durchführen können. So wie jetzt auch schon eine Function Anzahl über das Feld Bereich laufen lasse. Das habe ich bei dem DBTreeChart aber noch nicht gefunden. :| |
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Zitat:
|
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Liste der Anhänge anzeigen (Anzahl: 1)
Die DB ist Absolute Database, ist also SQL fähig. :lol: In dem Field stehen Kürzel, die
vorher schon errechnet werden, für die Tageszeit. Das ist denke ich, für diese Sache aber mehr als uninteressant. Mit anderen Worten, du denkst, für jede Pie-chart Grafik eine eigene SQL-Abfrage? Beispiel siehe Anhang. So oder ähnlich soll das später aussehen. :roll: |
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Zitat:
|
Re: TDBTeeChart, Pie-Serie, Gruppierungen
Die Felder werden z.B. errechnet, wenn in der Datenbank neue Werte eingegeben werden. Genauer gesagt, wenn man
einen Messwert mit Datum und Uhrzeit eingibt, wird parallel eingetragen, ob es sich um einen hohen oder niedrigen Wert handelt und ob er am Vormittag oder Nachmittag oder gar in der Nacht gemessen wurde. Nichts besonders. Für mich war nur wichtig, das die Zuordnungen fest in der DB stehen. Der Zugriff auf die Felder erfolgt über DevExpress Editoren und Grids. Die Datenbank ist Absolute Database und die Charts sind (leider) TreeChart´s. :wink: Ich habe mich jetzt entschieden, die einzelnen Zeitblöcke mit einem SQL Statement aus der Datenbank auszulesen und die Datasources mit den jeweiligen Pie-Serien zu verbinden. |
Re: TDBTeeChart, Pie-Serie, Gruppierungen
So, habe mich in diesem Problem durch Doku, andere Foren etc durchgebissen und
habe eine Lösung für mich gefunden. :wink: Sieht dann, leicht gekürzt, etwa so aus:
Delphi-Quellcode:
Am Ende der gesamte Routine stand noch ein RefreshData auf die gesamte Grafik. Das habe
for i_Serie := 0 to cxBZ_WertePie.CountActiveSeries - 1 do
begin with cxBZ_WertePie do begin case i_Serie of 0 : i_KurzText := 'GS'; { Gesamt } (..) end; { der erste Werteblock } if SeriesList[i_Serie].XLabel[0] = '0' then begin SeriesList[i_Serie].XLabel[0] := i_KurzText+' zu niedrig'; SeriesList[i_Serie].ValueColor[0] := cxStyleLow.Color; end; (..) { und alles Neuzeichnen } SeriesList[i_Serie].Repaint; end; end; ich entfernt, weil dann immer wieder der Zustand hergestellt wurde, den ich in der IDE beim Erstellen der uswertung eingegeben hatte. :x Das scheint mir aber auch nicht ganz ohne Fehler zu sein, aber egal so klappt es bei mir. Und nur das zählt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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-2025 by Thomas Breitkreuz