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