AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDBChart Möglichkeiten

Ein Thema von Cogito · begonnen am 27. Jun 2008 · letzter Beitrag vom 7. Jul 2008
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: TDBChart Möglichkeiten

  Alt 2. Jul 2008, 16:24
Der Fehler hat nichts mit dem ValueIndex zu tun. Es scheint bei dir in der Tabelle DBDEMOS:ORDERS einen fehlenden Wert bei SALEDATE zu geben. Das müsstest du abfangen.

In meinem Code in Beitrag #9 habe ich eine Anpassung gemacht, damit nur der Monatserste einen Label generiert.
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#12

Re: TDBChart Möglichkeiten

  Alt 2. Jul 2008, 20:10
Das mit dem fehlenden Wert könnte natürlich auch sein, hab ich nicht getestet.
Vielen Dank erstmal.
Noch eine Frage hätte ich: Wie kann ich eigentlich feststellen, ob eine Serie nur 0 Werte enthält und diese dann im Chart gar nicht erst anzeigen, damit diese auch in der Legende nicht auftaucht?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: TDBChart Möglichkeiten

  Alt 2. Jul 2008, 22:38
Eine Serie ohne Werte liefert für FirstValueIndex den Wert -1. Die Sichtbarkeit einer Serie im Diagramm steuerst du mit der Eigenschaft Active, die Sichtbarkeit in der Legende kannst du mit der Eigenschaft ShowInLegend steuern.

Delphi-Quellcode:
var
  i: Integer;
begin
  with DBChart do
    for i := 0 to Pred(SeriesCount) do
      Series[i].ShowInLegend := Series[i].FirstValueIndex > -1;
end;
Eine Serie, die zwar Werte aufweist, aber diese Werte sind alle 0?

Delphi-Quellcode:
var
  i: Integer;
begin
  with DBChart do
    for i := 0 to Pred(SeriesCount) do
      Series[i].Active := Series[i].YValues.MaxValue > 0;
end;
Getippt und nicht getestet.

Gute Nacht
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#14

Re: TDBChart Möglichkeiten

  Alt 3. Jul 2008, 10:03
Also das ShowsInLegend wird anscheinend nicht benötigt (und zeigt bei mir auch keinen Effekt), die Active-Anweisung blendet die Legende mit aus.
Allerdings funktioniert die Aktualisierung nicht richtig, ich habe die darzustellenden Daten in einer abhängigen Detailtabelle und sobald sich der Masterdatensatz ändert, ändern sich natürlich auch die Detaildaten. Ich muss dann erstmal händisch ein RefreshData für das Chart ausführen, und eine ausgeblendete Serie (also active=false) wird nicht mehr aktiv, obwohl in der Spalte wieder Werte drinstehen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: TDBChart Möglichkeiten

  Alt 3. Jul 2008, 12:00
Moin,

beim Wechsel des Datensatzes im Master-Dataset wird bei der zugeordneten DataSource das Ereignis OnDataChange() ausgelöst. Dort kannst du dann die Serien aktivieren, die von diesem Master abhängig sind. Wenn die Eigenschaft AutoRefresh von DBChart auf True gesetzt wird, dann werden die Reihendaten automatisch aktualisiert. Im Handbuch steht, dass das nur beim Öffnen eines Datasets greift, also probiere es einfach mal aus.

Auf Dauer wirst du nicht ohne eine Online-Hilfe zu TeeChart auskommen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#16

Re: TDBChart Möglichkeiten

  Alt 3. Jul 2008, 12:21
Zitat von marabu:
Moin,

beim Wechsel des Datensatzes im Master-Dataset wird bei der zugeordneten DataSource das Ereignis OnDataChange() ausgelöst. Dort kannst du dann die Serien aktivieren, die von diesem Master abhängig sind. Wenn die Eigenschaft AutoRefresh von DBChart auf True gesetzt wird, dann werden die Reihendaten automatisch aktualisiert. Im Handbuch steht, dass das nur beim Öffnen eines Datasets greift, also probiere es einfach mal aus.

Auf Dauer wirst du nicht ohne eine Online-Hilfe zu TeeChart auskommen.

Freundliche Grüße
Hi,

nein eben nicht, ich hab AutoRefresh auf True gestellt aber es passiert keine automatische Aktualisierung. Es könnte allerdings sein, dass dies an den dbgo Komponenten liegt..
Was aber dennoch, auch nach Refresh des Charts, nicht passiert, ist die richtige Legenden Ein/Ausblendung. Wie ich eben schon geschrieben habe, macht er das beim ersten mal noch richtig, aber wenn eine Legende mal ausgeblendet war, wird sie nach Datensatzwechsel nicht mehr eingeblendet, auch wenn diese Serie nicht leer ist.. hast du noch eine Idee?


P.S. Noch ne kleine Frage für zwischendurch: Kann ich irgendwie Einfluss auf die Skalierung der x-Achse nehmen (obwohl die auf 1 Tag steht)? Die Abstände zwischen den Tagen die er darstellt sind so groß,oder schiebt er die automatisch zusammen wenn mehr Werte drinstehen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: TDBChart Möglichkeiten

  Alt 4. Jul 2008, 18:35
Hallo,

was deine offenen Probleme mit der Legendendarstellung und der Achsenskalierung angeht: Erstelle ein Demo-Projekt, das nur diese Aspekte verdeutlicht. Meistens wird einem dann schon selbst klar, wo der Fehler liegt. Wenn nicht, dann schaue ich mir das an. Versprochen.

Grundsätzlich kannst du für die X-Achse das Datenintervall explizit statt automatisch bestimmen und die Steigung individuell festlegen. Mehr geht bei Datumswerten nicht.

Freundliche Grüße
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#18

Re: TDBChart Möglichkeiten

  Alt 7. Jul 2008, 12:06
Zitat von marabu:
Hallo,

was deine offenen Probleme mit der Legendendarstellung und der Achsenskalierung angeht: Erstelle ein Demo-Projekt, das nur diese Aspekte verdeutlicht. Meistens wird einem dann schon selbst klar, wo der Fehler liegt. Wenn nicht, dann schaue ich mir das an. Versprochen.

Grundsätzlich kannst du für die X-Achse das Datenintervall explizit statt automatisch bestimmen und die Steigung individuell festlegen. Mehr geht bei Datumswerten nicht.

Freundliche Grüße
Vielen Dank, die Legendendarstellung funktioniert jetzt auch, ich deaktiviere die Serie im Fall wenn kein Wert da ist.
Ich hab dir mal ein Bild des Originalcharts angefügt, ist in Excel erstellt. Glaubst du man bekommt so eine Auflösung hin?
Bei mir macht er die Tage doch immer sehr weit auseinander...


Anmerkung: Mir fällt gerade auf, das er die x-Achen-Darstellung überhaupt nicht ändert, ganz gleich was ich für ein Increment auswähle. Könnte das mit dem implementierten OnGetAxisLabel Event zusammenhängen, indem ja die Werte explizit gesetzt werden? Wäre schon schlecht wenn ich da nichts ändern könnte...
Miniaturansicht angehängter Grafiken
chart_720.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:31 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