![]() |
Fastreport 2025.1 Chart zeigt Lines nicht an
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich versuche mit Delphi XE die Fastreport componente TfrxChart zu verwenden, habe jedoch das Problem, dass mir das Chart zwar angezeigt wird, aber ohne die Werte (s. Anhang). Die Zuweisung erfolgt so:
Delphi-Quellcode:
Ich habe das Chart dann auf dem Form erzeugt und die Werte auf die gleiche Weise zugeordnet. Das funktioniert einwandfrei. Wenn ich den Chart dann aber per
function TForm1.GetNewSeries(sName: string): TChartSeries;
// ******************************** // DIT-2618, GPa, 2021-10-04 begin Result := TLineSeries.Create(nil); Result.Pointer.Visible := True; Result.LinePen.Visible := True; Result.Title := sName; Result.Marks.Arrow.Visible := True; Result.ShowInLegend := True; Result.XValues.DateTime := False; Result.Visible := True; end; procedure TForm1.btPrintNewChartClick(Sender: TObject); var lFrxChart: TFrxChartView; csSeries1: TChartSeries; begin tag := tag + 1; // Assing the chart to frxChartView lFrxChart := TFrxChartView(frxReport2.FindObject('Chart1')); if (lFrxChart <> nil) then begin lFrxChart.Chart.Title.Caption := Format('Title %d', [tag]); csSeries1 := GetNewSeries('Test1'); lFrxChart.Chart.AddSeries(csSeries1); csSeries1.AddXY(0, 12); csSeries1.AddXY(1, 150); csSeries1.AddXY(2, 100); csSeries1.AddXY(3, 180); end; frxReport2.ShowReport; end;
Delphi-Quellcode:
zuweise, wird er Titel korrekt angezeigt, das Chart aber wieder ohne Werte.
procedure TForm1.btPrintAssigneChartClick(Sender: TObject);
var lFrxChart: TFrxChartView; begin // Assing the chart to frxChartView lFrxChart := TFrxChartView(frxReport2.FindObject('Chart1')); if (lFrxChart <> nil) then lFrxChart.Chart.Assign(chChart); frxReport2.ShowReport; end; Ich habe mir schon die ganzen Properties des TfrxChartView angeschaut, aber nichts gefunden, dass das Anzeigen beeinflusst. Hat da jemand ein Tip? PS: Wenn ich die Legende anzeigen lasse, werden die Series dort angezeigt, aber eben keine Lines im Graph selber Danke Gerd |
AW: Fastreport 2025.1 Chart zeigt Lines nicht an
Mmmh, hat hier niemand eine Idee?
|
AW: Fastreport 2025.1 Chart zeigt Lines nicht an
Bei mir hat das auch nie wirklich funktioniert, wir gehen stattdessen hin, rendern den TeeChart in eine Vektorgrafik und packen diese dann auf den FastReport.
|
AW: Fastreport 2025.1 Chart zeigt Lines nicht an
Hast Du schon mal versucht erst ein PrepareReport anzustoßen und dann anzuzeigen?
Delphi-Quellcode:
frxReport2.PrepareReport;
frxReport2.ShowReport; |
AW: Fastreport 2025.1 Chart zeigt Lines nicht an
Zitat:
Zitat:
Delphi-Quellcode:
?
lPictureView.Picture.Assign(chChart.TeeCreateMetafile(False, Rect(0, 0, Round(lPictureView.Width), Round(lPictureView.Height))));
Das habe ich bis jetzt mit den einfachen Reports, wo das Chart schon im Delphi-Form angezeigt wird, auch so gemacht. Jetzt wollte ich aber einen Report aus vielen Seiten erzeugen wo die Charts auf der Delphi-Seite gar nicht existieren, bzw. verschiedene Views aufgerufen werden müssen. In QuickReport war es problemlos möglich den QR-Chart an dieselbe Funktion zu schicken, wie wenn ich ihn für den Delphi-View erzeuge und eigentlich hatte ich irgendwo gelesen, dass auch hinter dem frxChartView.Chart der TeeChart steckt. Aber irgendwie wohl nicht so wirklich. Vielleicht ist es wirklich die beste Idee, ich erzeuge auch für den langen Report immer ein TeeChart und Assigne dann wie oben beschrieben. Beim Picture.Assigen muss man aber noch beachte, dass zumindest bei mir (Delphi XE), das Scaling auch nicht funktioniert hat wenn das Windows Screen scaling <> 100% war. Ich assigne deshalb so
Delphi-Quellcode:
procedure AssignAndScaleChart(aPictureView: TFrxPictureView; aChart: TChart);
// ******************************************* // Printout of a Chart was not correct scaled, if screen scaling was bigger than 100%. Here Chart will be scaled correct var rHeight, rWidth: Extended; begin // Save defined sizes rHeight := aPictureView.Height; rWidth := aPictureView.Width; // allow Autosize und Stretch and assign chart aPictureView.Stretched := true; aPictureView.AutoSize := true; aPictureView.Picture.Assign(aChart.TeeCreateMetafile(True, Rect(0, 0, Round(aPictureView.Width), Round(aPictureView.Height)))); // deactivate Autosize und Stretch aPictureView.AutoSize := False; aPictureView.Stretched := False; // set PictureView to originally defined sizes aPictureView.Height := rHeight; //aPictureView.Height * rFactorHeight; aPictureView.Width := rWidth; //aPictureView.Width * rFactorWidth; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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