![]() |
TCharts in der Druckvorschau
Hallo,
ich habe bspw. in Form1 mehrere Charts, die ich in unterschiedlichen Layouts (1, 2, 3 oder 4 Charts auf einer Seite, dazu noch Hoch- oder Querformat) ausdrucken möchte. Dazu soll vorher eine Druckvorschau möglich sein. Ich habe es bisher so gelöst, dass ich in einem neuen Form ein Shape platziert habe und darin im Prinzip alles entweder auf dem Shape oder auf dem Drucker (drucker.canvas) nochmal neu zeichne, sowohl den Text, als auch die Charts. Langsam wächst mir der Aufwand aber über den Kopf, die eigentlich fertigen Charts aus Form1 nochmal Strich für Strich in einer ansprechenden Form zu zeichnen. Gibt es eine Möglichkeit, so ein Chart in das Shape gezielt (gemäß notwendiger Koordinaten) zu kopieren und anschließend auszudrucken ? Ich habe auch schon versucht, im Shape ein TChart zu setzen und in dieses die Daten aus Form1 nochmal reinzuschreiben (series1.addxy(...). Doch dann liegt das Chart immer hinter dem Shape. Ich hoffe, es gibt da eine elegante Lösung und ich muss nicht tatsächlich nochmal alles selbst zeichnen. Vielen Dank im Voraus |
AW: TCharts in der Druckvorschau
Verwendest du ein Reportsystem ( RAVE, QR, FR, ...)?
|
AW: TCharts in der Druckvorschau
Nein, die Daten werden alle aus einer Datei eingelesen und entsprechend eines Berechnungsalgorithmus verarbeitet und die Ergebnisse in Charts dargestellt. Ich weis nicht, ob sich dafür ein Reportsystem anbieten würde ?
MfG |
AW: TCharts in der Druckvorschau
Hi,
ich benutze TChart und Quickreport zusammen. Im Ordner vom TChart ist eine QRChart-Komponente. Funktioniert super. Mehrere Seiten kann man mit einen Compositereport zusammenfassen. |
AW: TCharts in der Druckvorschau
@Darlo,
Danke, werde ich mal probieren. Habe aber meine Bedenken, ob ich da meine verschiedenen Layouts gestalten kann und vor allem, ob man so ein TChart auch um 90 bzw. 270° drehen kann, wenn man eine Ausgabe im Querformat benötigt. Aber Versuch macht klug... MfG |
AW: TCharts in der Druckvorschau
Quickreport unterstützt Hoch- und Querformat. Alternative kannst Du ja die TCharts als Bild exportieren, drehen und einfügen.
|
AW: TCharts in der Druckvorschau
Hi,
ich bin schon fleißig am Experimentieren. Aber schon sind erste Fehler da: Ich bekomme beim Erstellen der Series im QRChart mit z.B:
Code:
eine Fehlermeldung: 'Listenindex überschreitet das Maximum (1)'.
for z:=1 to 50 do begin
qrchart1.Chart.Series[1].addxy(z,z*z,'',clBlack); end; Keine Ahnung, was da gemeint ist. Bezieht sich das auf die series ? Muß ich da noch was voreinstellen ? MfG Zusätzlich habe ich auch das OnNeedData-Ereignis wie folgt gesetzt:
Code:
MfG
procedure TForm13.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean); begin MoreData:=(z < 50); inc(z); end; |
AW: TCharts in der Druckvorschau
Vielleicht Series[0] statt Series[1]?
Code:
qrchart1.Chart.Series[0].addxy(z,z*z,'',clBlack);
|
AW: TCharts in der Druckvorschau
Nee,
mit series[0] macht er den Report garnicht mehr auf... Nun sehe ich, dass im OI die Eigenschaft QRChart1.Chart auf (TQRDBChart) gesetzt ist. Könnte es daran liegen, dass irgendwie immer Werte aus einer Datenbank erwartet werden ? Wie kann ich das änder? |
AW: TCharts in der Druckvorschau
Erstmal gelöst:
Habe das OnNeedData-Ereignis wieder rausgenommen und das Füllen des Charts in das Ereignis QuickRep1.BeforePrint gesetzt:
Code:
Vllt. geht es auch noch eleganter. Aber ich bin erstmal zufrieden...
procedure TForm13.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean); var i: integer; begin for i:=1 to anz_mw do qrchart1.Chart.Series[1].AddXY(i,messwerte[messkanal-1,i],'',clBlack); end; Danke an alle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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