Home » Tutorials » Third-Party-Komponenten » Quick Reports

Quick Reports

Sortieren, Gruppieren und Zusammenfassen in Reports

Wenn Sie die grundlegensten Dinge Ihrer Reports einmal kennen, werden Sie wissen müssen, wie Sie Daten in Ihren Reports sortieren, gruppieren und zusammenfassen. Quick Report kann intern nicht mit dem Sortieren umgehen (lesen Sie im nächsten Abschnitt, wie man das macht). QR verwendet die Komponenten Group-Header und -Footer zur Gruppierung und QRExpr zum Zusammenfassen. Bleiben Sie dran, wenn wir jetzt dieses wichtige Gebiet erkunden.

Daten sortieren

Das Sortieren muss außerhalb von Quick Report erledigt werden. Das ist keine große Sache, wie es zunächst klingt. Setzen Sie einfach eine Query-Komponente auf Ihr Formular und erzeugen Sie Ihre Abfrage mit irgendeiner Sortierung, die Sie benötigen. Das Verwenden von Abfragen ist auch die einfachste Art, mit Master-/Detail-Reports umzugehen. Ein einfacher Weg zur Erstellung Ihrer SQL-Abfrage ist das Verwenden der Datenbankoberfläche. Wenn Sie sie so haben, wie Sie sie wollen, drücken Sie den Button „SQL anzeigen“ und kopieren den Code in die SQL-Stringliste der Query-Komponente. Testen Sie die Abfrage, indem Sie active auf true setzen. Wenn Sie das tun können, sollten Sie alles erledigt haben.

Daten gruppieren

Das Gruppieren von Daten benötigt eine QRGroup-Komponente. Dabei handelt es sich um eine Header-Komponente. Optional können Sie eine QRFooter-Komponente nehmen, indem Sie eine QRBand-Komponente verwenden und in QRFooter umwandeln. Sprechen wir zuerst über die QRGroup-Komponente.

Die Komponente QRGroup

In einer QRGroup-Komponente gibt es eine Menge Eigenschaften, die meisten werden Sie aber nur selten verwenden. Die am häufigsten benutzten (und die wichtigsten) sind:

Expression – Die Eigenschaft legt die Bedingungen zum Trennen einer Datensatz-Gruppe von einer anderen. Normalerweise werden Sie nur das Feld in der Tabelle angeben müssen, wonach Sie gruppieren. Gelegentlich werden Sie komplexere Bedingungen verwenden müssen. Da der Ausdrucksdialog der gleiche ist wie bei QRExpr, werde ich hier nicht wiederholen, wie er zu bedienen ist. Denken Sie daran, dass Sie für jeden Bruch in Ihrem Report einen seperaten QRGroup-Header benötigen. Auch muss jede QRGroup vom ersten nach innen bis zum letzten gesehen werden. Das ist ziemlich intuitiv, aber hin und wieder werden Sie einen Fehler machen und ein falsches Feld hineinsetzen, oder Sie müssen manchmal ein gruppierendes Feld in einer Komponente verändern. Was auch immer passiert, ändern Sie NICHT die Position der QRGroup-Komponente, indem Sie sie verschieben und sie nicht dort zu lassen, wo sie ist und zu hoffen, dass QR kapiert, dass es diese Felder zuerst gruppiert und jene Felder als nächstes usw. Was Sie tun werden müssen, ist, die Ausdrücke jeder einzelnen Komponente so zu verändern, dass die korrekte Reihenfolge hergestellt wird. Ansonsten besteht die einzige Alternative darin, jede QRGroup-Komponente zu löschen und sie in der Reihenfolge zu lesen, wie Sie es wollen.

Font – Diese Eigenschaft ist hilfreich, wenn die meisten der Komponenten, die in dieses Band kommen, ähnlich aussehen sollen. Stellen Sie sicher, dass dies direkt geändert wird, nachdem Sie die Komponente platziert haben, so dass alle folgenden Komponenten diese Eigenschaft verwenden, sobald sie platziert werden.

FooterBand – Dies ist die Eigenschaft, über die das Header-Band mit dem richtigen Footer-Band verbunden wird und Ihre Gruppe innen einschließt. Ich empfehle, zuerst alle Ihre Header-Bands zu platzieren und anschließend zurückzugehen und die Footer-Bands zu platzieren, indem eine QRBand gesetzt und sofort der Typ von rbTitle auf rbGroupFooter umgestellt wird. Als nächstes geben Sie diesem Band einen eindeutigen Namen, damit sie leichter verstehen können, welcher Footer zu welchem Header gehört und warum. Wenn Sie das getan haben, können Sie zum QRGroup-Header zurückkehren und das richtige Footer-Band zur Verwendung auswählen. Beachten Sie auch, dass ein Footer sich nicht automatisch aussortiert, wenner einmal mit einem Group-Band verbunden ist, gehen Sie deshalb von innen nach außen in Ihrer Gruppierung vor, so dass die Footer korrekt arbeiten.

ForceNewColumn und ForceNewPage – Normalerweise würden Sie diese im Footer-Band auf true setzen, wenn Sie eine neue Seite wollen. Sie sollten dies nicht in einem Group-Header tun.

Das QRFooter-Band

Das QRFooter-Band, welches in der Dropdown-Liste der Bandarten rbGroupFooter genannt wird, wird zusammen mit einem Header-Band nur gebraucht, wenn eine komplette Gruppe auf einer Seite erscheinen soll. Wenn Sie keine andere Verwendung für das Footer-Band haben, machen Sie es so klein wie möglich, um Papier zu sparen. Ansonsten können Sie es dazu verwenden, Gesamtsummen für jede Gruppe auszugeben.

TQRExpression zur Daten-Zusammenfassung verwenden

Wo wir gerade von Gesamtsummen sprechen: Der gewöhnlichste Verwendungszweck einer TQRExpr-Komponente ist das Summieren von Daten. Die QRExpr-Komponente enthält einige Aggregatfunktionen, die normalerweise alle auf die gleiche Art arbeiten, so dass wir uns auf einige Schlüsseleigenschaften von QRExpr konzentrieren werden, die für das Summieren von Daten verantwortlich sind.

Master – Die Eigenschaft Master wird dazu verwendet, die Eingabe eines Ausdrucks festzulegen. Wenn Sie ein Feld in einer Tabelle summieren, muss die Master-Eigenschaft auf diese Tabelle gesetzt werden. Das Setzen von Master auf die falsche Tabelle oder das Leerlassen verursacht Probleme.

ResetAfterPrint – Diese Eigenschaft hat sehr viele Schwierigkeiten verursacht, weil der Standardwert false ist. Wenn Sie jede Gruppe getrennt zusammenrechnen wollen, müssen Sie diese Einstellung auf true ändern. Ansonsten wird die Summe stetig anwachsen.

Alignment – Ändern Sie dies für Zahlenausgabe in taRightJustify. Es ist auch eine gute Idee, die Eigenschaft AutoSize auf false zu ändern und die Breite des Felds manuell zu setzen. Den Text innerhalb des Felds können Sie ignorieren, da er keine Verbindung dazu hat, wie die eigentliche Ausgabe aussehen wird.

Mask – Verwenden Sie diese Ausgabe zur Formatierung Ihres Ausdrucks. Siehe die früheren Abschnitte, wie das zu tun ist.

TIPP 9

Manchmal wünschen Sie sich eine Linie über den Zusammenfassungszahlen? Sie können eine QRShape-Komponente als Linie eingestellt verwenden, oder Sie verwenden die Eigenschaft Frame, um eine Linie am oberen Rand anzuzeigen. Setzen Sie die Eigenschaft DrawTop auf true, und es wird eine Linie über jeder der Zahlen angezeigt, die gedruckt werden. Sie können dort auch den Stil und die Dicke der Linie verändern.