Ich habe jetzt die Lösung selbst gefunden und möchte sie hier kurz
zeigen, da ich weder irgendwo einen Hinweis gefunden noch die
entsprechenden Funktionen erklärt gefunden habe.
Vorgehensweise:
1) QuickReport wie gewohnt mit TQRGroup aufbauen
2) Bei der Eigenschaft Functions der QuickReport Komponente eine
Funktion definieren (z.B. GROUPKOPF)
3) Bei der Eigenschaft Expression der TQRGroup Komponent die Funktion
(hier GROUPKOPF) eintragen
Immer wenn sich der Wert der Funktion ändert wird ein Gruppenwechsel durchgeführt.
Die Datenmenge muss allerdings nach dem zu gruppierenden Feld sortiert sein
Hier ein Codebeispiel
Delphi-Quellcode:
procedure TQRPersGroup.QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
var
lResult : TQREvResult;
begin
moredata := ...; // Muss noch eine weitere Zeile gedruckt werden
inc(Zeile); // zeilenzähler
lResult := QRPersGroup.Functions.Value('GROUPKOPF'); // aktuellen Werte ermitteln
lResult.strResult := ...; // neuen Wert ermitteln
QRPersGroup.Functions.UpdateConstant('GROUPKOPF',lFunc); // Funktionswert setzen
QRPersGroup.Functions.Prepare; // Refresh der Funktionen
end;
fröhliches Programmieren
Delphi4me