Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TDBChart in Abhängigkeit zur ausgeführten Query... (https://www.delphipraxis.net/104560-tdbchart-abhaengigkeit-zur-ausgefuehrten-query.html)

Stern 10. Dez 2007 11:40

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
@mkinzler: also genau das hatte ich ja auch vor. Nur habe ich Probleme, meine Query auch entsprechend
umzusetzen. Also ich habe mir jetzt im Design-Modus eine "Series1" mit einem Torten-Diagramm angelegt.
Ich bekomme aus meiner SQL-Query eine Datenmenge, die 4 Namen und entsprechend 4 Werte enthält. Nun würde
ich natürlich gerne den Kuchen so aufteilen, dass ich sehen kann, wer wieviel Prozent der Gesamtsumme hat.

Beispiel

SQL ( SELECT Wert,Name FROM tabelle) ergibt:
Delphi-Quellcode:
|Wert|  |Name|
 123234  Meier
 343434  Huber
 312123  Klein
 90909   Meissner
Nun müsste ich ja zunächst die Gesamtsumme vom Wert bekommen und diese dann zuweisen. Hier liegt das Problem.
Ich bekomme das nicht hin bzw. weiß nicht genau, wie ich die Werte zuordnen kann. Irgendwie so in dieser Richtung:
Delphi-Quellcode:
///////DBChart zur Laufzeit füllen
      Series1.DataSource:= dsMain;
      Series1.YValues.ValueSource:='bla';
      Series1.XLabelsSource:= 'bla';
Naja, da hängt es jetzt halt noch bei mir...Vielleicht einen Tipp?

Liebe Grüße
Steffi

mikhal 10. Dez 2007 12:14

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Delphi-Quellcode:
 Series1.YValues.ValueSource:=Query.FindField('Wert').AsString;
Series1.XLabelsSource:= Query.FindField('Name').AsString;
Grüße
Mikhal

Stern 10. Dez 2007 18:35

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

so nun habe ich den ganzen Thread nochmals durchgearbeitet und komme aber immer noch nicht zu meinem gewünschten Ergebnis.
Wenn ich das DBChart im Design-Modus einstelle klappt alles wunderbar. Aber ich bekomm es zur Laufzeit einfach nicht gebacken... :oops:

Ich hab hier mal ein Bildchen angehängt, mit meinen Eingaben im Design-Modus. Damit bekomme ich genau was ich haben möchte.
Wenn ich aber das Ganze lösche und versuche über Series1.DataSource... das DBChart zur Laufzeit zu erzeugen bekomme ich es nicht hin.

Kann mir vielleicht nochmal anhand meines Bildchens zeigen, was ich zur Laufzeit codieren muss? :gruebel:

Liebe Grüße
Steffi

Stern 10. Dez 2007 19:34

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Oha, so langsam komme ich dann auf den Trichter:

Delphi-Quellcode:
////////////////////
        /// DBCharting

        Series1.DataSource:= dsMain;
        Series1.XLabelsSource:= 'Month';
        Series1.XValues.ValueSource:='Month';
        Series1.YValues.ValueSource:= 'count(*)';
liefert mir ein Chart mit EINEM Balken aus der Ergebnismenge. Wenn ich im DBGrid weiter gehe,
aktualisiert das DBChart sich sofort. Allerdings hätte ich nun noch gerne ALLE Balken auf einmal auf meinem DBChart... :gruebel:

Liebe Grüße
Steffi

mikhal 10. Dez 2007 19:44

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Tja, da habe ich dich wohl heute auf die falschee Fährte geschickt...

Delphi-Quellcode:
  qrMain.Active := False;
  Series1.DataSource := qrMain;
  Series1.YValues.ValueSource := 'Anzahl'; // dein Count(*) solltest du mit einem Alias versehen, etwa " COUNT(*) AS Anzahl"
  Series1.XValues.ValueSource := 'Month';
  Series1.XLabelsSource := 'Month';
  qrMain.Open;
Ich habe dann bei mir alle Balken meiner Abfrage angezeigt.

Grüße
Mikhal

mikhal 10. Dez 2007 19:58

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Hab' noch was übersehen: ValueSource erwartet einen Zahlenwert! Hast du den Monat als String gespeichert, kracht es hier! Dann reicht der Eintrag in XLabels.

Grüße
Mikhal
[edit]Tippfehler...[/edit]

Stern 10. Dez 2007 20:10

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Naja, dass ist nicht schlimm. Ich bin hier fleißig am ausprobieren...
Also es sei dir verziehen :lol:

Ich wundere mich aber darüber, dass ich nur einen Balken bekomme. Muss ich vielleicht noch etwas einstellen? Hängt es damit zusammen,
dass ich gleichzeitig noch ein DBGrid im Einsatz habe? :gruebel:
Im Anhang mal wieder ein Bildchen. Ich verzweifle noch.

Liebe Grüße
Steffi

PS: der Monat ist bei als integer...

mikhal 10. Dez 2007 20:32

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Kopple das DBGrid mal ab, wenn du dann immer noch nur einen Balken siehst, schick doch mal dein Select-Statement, damit man auch dort einen möglichen Fehler finden kann.

Grüße
Mikhal

Stern 10. Dez 2007 20:39

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Also das DBGrid ist es schon mal nicht... :roll:
Hier mal mein Statement:
Delphi-Quellcode:
begin
        qrMain.SQL.Clear;
        qrMain.SQL.Text:= 'SELECT Month(created) AS month, COUNT(*) AS count FROM tabelle where year(created)=:jahr GROUP BY Month(created);';
        qrMain.ParamByName('jahr').asString := IntToStr(1999);
        qrMain.Active:= True;
        qrMain.open;
Hmmm, also ich kann da kein Fehler erkennen... Aber das heißt ja noch gar nichts :wink:

Liebe Grüße
Steffi

mikhal 10. Dez 2007 20:49

Re: TDBChart in Abhängigkeit zur ausgeführten Query...
 
Zuerst drei kleine Anmerkungen:

1. die Textzuweisung via qryMain.SQL.Text löscht automatisch die SQL-StringList, also kannst du dir das qrMain.Clear sparen.
2. qrMain.Open und qrMain.Active = True machen das Gleiche, also ist eins überflüssig.
3. du verwendest als Alias für deine Anzahl das SQL-Schlüsselwort Count, wundert mich, dass da keine Fehlermeldung kommt.

In der Select-Anweisung selbst kann ich jetzt keinen Fehler finden, ich würde aber nach der Parameterzuweisung noch die Zeile "qrMain.Prepared := True;" einsetzen. Ist eine Gewohnheit aus alten Tagen, weil unter ADO nicht immer die Parameterliste korrekt abgearbeitet wurde, wenn diese Zeile fehlte.

Grüße
Mikhal

[edit]Korrekturen...[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Seite 2 von 3     12 3      

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