AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TDBChart in Abhängigkeit zur ausgeführten Query...
Thema durchsuchen
Ansicht
Themen-Optionen

TDBChart in Abhängigkeit zur ausgeführten Query...

Ein Thema von Stern · begonnen am 6. Dez 2007 · letzter Beitrag vom 10. Dez 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Stern
Stern

Registriert seit: 26. Feb 2007
Ort: Köln
74 Beiträge
 
#11

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 11:40
@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
steffi
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 12:14
Delphi-Quellcode:
 Series1.YValues.ValueSource:=Query.FindField('Wert').AsString;
Series1.XLabelsSource:= Query.FindField('Name').AsString;
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Stern
Stern

Registriert seit: 26. Feb 2007
Ort: Köln
74 Beiträge
 
#13

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 18:35
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...

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?

Liebe Grüße
Steffi
Miniaturansicht angehängter Grafiken
soll_760.jpg  
steffi
  Mit Zitat antworten Zitat
Benutzerbild von Stern
Stern

Registriert seit: 26. Feb 2007
Ort: Köln
74 Beiträge
 
#14

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 19:34
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...

Liebe Grüße
Steffi
steffi
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 19:44
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
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 19:58
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]
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Stern
Stern

Registriert seit: 26. Feb 2007
Ort: Köln
74 Beiträge
 
#17

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 20:10
Naja, dass ist nicht schlimm. Ich bin hier fleißig am ausprobieren...
Also es sei dir verziehen

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?
Im Anhang mal wieder ein Bildchen. Ich verzweifle noch.

Liebe Grüße
Steffi

PS: der Monat ist bei als integer...
Miniaturansicht angehängter Grafiken
soistes_146.jpg  
steffi
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 20:32
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
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Stern
Stern

Registriert seit: 26. Feb 2007
Ort: Köln
74 Beiträge
 
#19

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 20:39
Also das DBGrid ist es schon mal nicht...
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

Liebe Grüße
Steffi
steffi
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: TDBChart in Abhängigkeit zur ausgeführten Query...

  Alt 10. Dez 2007, 20:49
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]
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 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