Thema: Delphi FastReport und Charts

Einzelnen Beitrag anzeigen

Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

FastReport und Charts

  Alt 23. Aug 2007, 12:22
Hallo,

ich bin gerade dabei, einen Report, der mehrere Charts enthält, von QR (dem von D7) nach FastReport 4.3 zu übertragen.

Eins der Charts hat horizontale Balken, deren Farbe je nach ihrem Wert dargestellt wird (als eine Art Ampelsystem). Zu diesem Zweck wird die Farbe in der zugrunde liegenden Tabelle bei der Berechnung der Werte ermittelt und dann abgespeichert.

Im QuickReport-Formular lief dann folgendes ab:

Delphi-Quellcode:
      Series2 := QRChart5.Chart.SeriesList.Series[0];
      Series2.ColorEachPoint := False;
      Series2.Clear;

      with dmReport.tblQRep5a do begin
        Open;
        while not Eof do begin
          colbar2 := StringToColor(FieldbyName('strColor').AsString);
          Series2.Add(FieldbyName('dblValue').AsFloat,
                                     FieldbyName('strName').AsString, colbar2);
          Next;
        end;
      end;
Das funktionierte auch wunderbar.

Für den FastReport-Bericht sieht das ganze so aus:

Delphi-Quellcode:
      with dmFB.qryGetRecordList do begin
        SQL.Text := 'SELECT * FROM QREP_4';
        Open;
        while not eof do begin
          clChart := StringToColor(FieldbyName('STRCOLOR').AsString);
          frChart.Chart.Series[0].Add(FieldbyName('DBLVALUE').AsFloat,
            FieldbyName('STRGRPNAME').AsString, clChart);
          Next;
        end;
        Close;
      end;
      frxReport1.Loadfromfile('qreport.fr3');
      frxReport1.ShowReport;
Und da passiert....nichts. Der Bericht wird zwar angezeigt, aber: Wenn ich im FastReport als Datenquelle für die Serie ein TfrxDBDataset einstelle, werden die Daten aus dieser Datenquelle dargestellt und die Farbe ist für alle gleich (nämlich die voreingestellte), wenn ich "Fixe Daten" auswähle, bleibt das Chart leer.

Wenn ich mit F8 durch den obigen Quelltext gehe, wird auch jede Zeile brav abgearbeitet, aber es wird nichts in Chart eingetragen

Ich habe auch festgestellt, dass die "Add"-Funktion für eine Serie auch dann nicht ausgeführt wird, wenn sie direkt im Script-Editor im OnBeforePrint-Ereignis ausgeführt wird, oder hab ich da was übersehen?

Hat vielleicht jemand eine Idee, was ich noch probieren könnte?


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat