AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Fastreport 2025.1 Chart zeigt Lines nicht an
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport 2025.1 Chart zeigt Lines nicht an

Ein Thema von norwegen60 · begonnen am 20. Mai 2025 · letzter Beitrag vom 23. Mai 2025
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
526 Beiträge
 
Delphi 12 Athens
 
#1

Fastreport 2025.1 Chart zeigt Lines nicht an

  Alt 20. Mai 2025, 09:48
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:
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;
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
Delphi-Quellcode:
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;
zuweise, wird er Titel korrekt angezeigt, das Chart aber wieder ohne Werte.

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
Miniaturansicht angehängter Grafiken
qy4v7qwni2.jpg  

Geändert von norwegen60 (20. Mai 2025 um 10:17 Uhr)
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
526 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fastreport 2025.1 Chart zeigt Lines nicht an

  Alt 22. Mai 2025, 20:05
Mmmh, hat hier niemand eine Idee?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Fastreport 2025.1 Chart zeigt Lines nicht an

  Alt 23. Mai 2025, 08:35
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.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
384 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Fastreport 2025.1 Chart zeigt Lines nicht an

  Alt 23. Mai 2025, 09:57
Hast Du schon mal versucht erst ein PrepareReport anzustoßen und dann anzuzeigen?

Delphi-Quellcode:
frxReport2.PrepareReport;
frxReport2.ShowReport;
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
526 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fastreport 2025.1 Chart zeigt Lines nicht an

  Alt 23. Mai 2025, 12:54
Hast Du schon mal versucht erst ein PrepareReport anzustoßen und dann anzuzeigen?

Delphi-Quellcode:
frxReport2.PrepareReport;
frxReport2.ShowReport;
Das hat leider auch nicht geholfen.

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.
Meinst du per 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;

Geändert von norwegen60 (23. Mai 2025 um 13:22 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:10 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