Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi QuickReport: Count-Funktion (https://www.delphipraxis.net/138419-quickreport-count-funktion.html)

Windwalker 10. Aug 2009 08:08


QuickReport: Count-Funktion
 
Hallo!

Quick Report bietet ja die Count-Funktion.

Leider ist die QR-Hilfe so spärlich, über Count steht fast nichts drin.

Kann mir jemand eine besser Quelle empfehlen, wo ich mich in diese Funktion einlesen kann?
Ich will eine bestimmte QRGroup
a) einmal immer zählen, wie oft sie auftritt
b) nur dann zählen, wie oft sie mit einem bestimmten Feld, und dieses mit eindeutigen Werten, auftritt.

Danke für die Hilfe

pmoegenb 10. Aug 2009 09:41

Re: QuickReport: Count-Funktion
 
Weshalb zählst Du nicht einfach QRGroupAfterPrint hoch.

Windwalker 10. Aug 2009 09:52

Re: QuickReport: Count-Funktion
 
Du meinst wahrscheinlich, dass ich das im AfterPrint-Event machen soll.

Kannst Du mir ein Beispiel geben?
- wie ich immer hochzähle
- und wie ich nur dann hochzähle, wenn der eine Wert, um den es mir geht, unique ist (um die distincten zu erhalten)
Geht das so einfach?

pmoegenb 10. Aug 2009 10:59

Re: QuickReport: Count-Funktion
 
Zitat:

Zitat von Windwalker
Du meinst wahrscheinlich, dass ich das im AfterPrint-Event machen soll.

Genau.

Beispiel:
Delphi-Quellcode:
private
    { Private-Deklarationen }
    Anzahl1, Anzahl2: Integer;

procedure TFrm.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
     Anzahl1 := 0;
     Anzahl2 := 0;
end;

procedure TFrm.QuickRep1AfterPrint(Sender: TObject);
begin
     Anzahl1 := Anzahl1+1;
     If Bedingung then Anzahl2 := Anzahl2+1;
end;

Windwalker 10. Aug 2009 11:18

Re: QuickReport: Count-Funktion
 
Zitat:

Zitat von pmoegenb
Beispiel:
Delphi-Quellcode:
private
    { Private-Deklarationen }
    Anzahl1, Anzahl2: Integer;

procedure TFrm.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
     Anzahl1 := 0;
     Anzahl2 := 0;
end;

procedure TFrm.QuickRep1AfterPrint(Sender: TObject);
begin
     Anzahl1 := Anzahl1+1;
     If Bedingung then Anzahl2 := Anzahl2+1;
end;

Aha, dann könnte ich z.B. alle Werte in eine StringList schreiben und dann jeweils im AfterPrint überprüfen, ob der Eintrag schon in der Liste ist.
Falls nicht, in die Liste einfügen und Anzahl2 erhöhen.

Richtig so?
Wie lese ich die Variablen dann mit QuickReport aus?

pmoegenb 10. Aug 2009 12:07

Re: QuickReport: Count-Funktion
 
Zitat:

Zitat von Windwalker
Aha, dann könnte ich z.B. alle Werte in eine StringList schreiben und dann jeweils im AfterPrint überprüfen, ob der Eintrag schon in der Liste ist.
Falls nicht, in die Liste einfügen und Anzahl2 erhöhen.

Richtig so?
Wie lese ich die Variablen dann mit QuickReport aus?

Ja, z.B. mit einer Stringliste.

Die Werte der Variablen kannst Du einem QRLabel zuweisen. Z. B.

Delphi-Quellcode:
procedure TFrm.QRLabel13Print(sender: TObject; var Value: String);
begin
     Value := IntToStr(Anzahl1);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 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