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

Quick Reports

Band-Reports

Report-Grundlagen

Ich habe herausgefunden, dass es ein Muster gibt, das Sie einhalten sollten, wenn Sie einen Quick Report erstellen. Wenn Sie von diesem Muster abweichen, gehen Sie das Risiko ein, das Programm in Unordnung zu bringen und nicht das zu erhalten, was Sie wollen. Wie immer:

  1. Erstellen Sie Sicherungskopien Ihrer Dateien, damit Sie zu einer früheren Version zurückkehren können, falls Sie einen toten Punkt erreichen.
  2. Wenn Sie an einem komplexen Report arbeiten, möchten Sie vielleicht ein Testumfeld verwenden, um mit Ihrem Report zu arbeiten. Hier ist ein einfaches Testumfeld, das ich verwende:Erstellen Sie ein leeres Fenster mit einem Button, um Ihren Report aufzurufen. Fügen Sie dem Button folgenden Code hinzu:
    procedure TForm2.Button1Click(Sender: TObject);
    var QRForm1: TQRForm1;
    begin
    try
    Windowstate := wsMinimized;
    QrForm1:= TQrform1.Create(Self);
    QrForm1.QuickRep1.Preview;
    finally
    Windowstate := wsNormal;
    QrForm1.Free;
    end;
    end;

    Die Variable sollte eine Kopie des QR-Formulars sein, das Sie testen. Wenn Sie ein Datenmodul verwenden müssen, fügen Sie es in die uses-Klausel ein. Fügen Sie den Report, den Sie testen, ebenfalls der uses-Klausel hinzu. Ändern Sie die Variablen Qrform1 und QuickRep1 in die korrekten Namen Ihres Reports. Ich empfehle, die QuickRep1-Variable unverändert beizubehalten, da sie nur innerhalb jedes Quick Reports verwendet wird. Das Ändern des Formularnamens sollte ausreichen, dass Sie jeden Report auseinanderhalten können.

TIPP 5

Verwenden Sie diese Vorlage, um all Ihre Reports aufzurufen. Sie ist einfach zu verwenden und reduziert die Speicherlecks auf ein Minimum. Wenn Sie direkt zu einen Report drucken wollen, verändern Sie die Preview-Methode in Print. Wenn Sie Ihre Umgebung einmal eingerichtet haben, folgen hier die Schritte, um die einfachsten Quick Reports zu erstellen.

  1. Erzeugen Sie ein neues leeres Formular. Ich ziehe dies dem Verwenden der QR-Fenstervorlagen vor. Ändern Sie den Formularnamen in etwas, das Sie leicht identifizieren können. Wenn Sie die Konvention verwenden, ein „Rep“ vor jeden Namen eines Reportfensters zu setzen, wie z.B. „RepCustSummary“, können Sie die Fenster und Reports leichter auseinanderhalten.
  2. Fügen Sie eine QuickRep-Komponente dem Report hinzu. Klicken Sie rechts, um den Einstellungsdialog zu sehen, und verwenden Sie den zoom-out-Button, um die Komponente so in der Größe anzupassen, dass Sie das ganze Formular auf einer Seite sehen können. Ändern Sie den Seitentyp und andere grundlegende Reporteinstellungen, indem Sie „Report-Einstellungen“ aus dem Einstellungs-Popup-Menü auswählen. Zu diesem Zeitpunkt sollten Sie die Report-Titel-Eigenschaft im Objektinspektor setzen. Dies ist notwendig, wenn Sie den Report in einem Netzwerk drucken und das Netzwerk einen Namen für das Temp-Output-File benötigt.

TIPP 6

Die Report-Einstellungen erlauben es Ihnen auch, Bänder im Report, Ränder, Spaltenzahlen und viele andere nützliche Einstellungen an einer Stelle vorzunehmen. Sie können all diese Einstellungen auch im Objektinspektor ändern, aber dieser Weg ist schöner und schlichter, sie anzuzeigen.

  1. Nun müssen Sie die Bänder, die Sie verwenden wollen, hinzufügen. Dies ist ein weiteres Gebiet, das bei QR für Verwirrung sorgen kann, wenn man es in der falschen Reihenfolge macht.
    Wählen Sie entweder aus der Band-Unterrubrik des Objektinspektors oder aus der Report-Einstellungen-Dialogbox, welche Bänder Sie benötigen:Page Header Band – Die meisten Reports benötigen ein Band für Spaltenüberschriften

    Title Band – Wird für einfache Reports nicht benötigt

    Column Header – Wird in den meisten Reports nicht benötigt

    Detail Band – Die meisten Reports haben ein Band für die Details eines Berichts

    Page Footer Band – Nicht benötigt. Sie können es verwenden, wenn Sie darin Ihre Seitenzahlen unterbringen wollen.

    Summary Band – Wird für einfache Reports nicht benötigt.

    Wenn Sie sie auswählen, werden Sie in Ihrem Fenster erscheinen. Wenn Sie Ihrem Report Gruppen hinzugefügt hätten, würden Sie diese nun aus der Toolbar hinzufügen. Lesen Sie den Abschnitt über die Verwendung von Gruppen für weitere Details.

  2. Normalerweise benötigen Sie für Ihren Report Daten. Wenn Sie ein Datenmodul verwenden und dieses noch nicht der Uses-Klausel hinzugefügt haben, tun Sie es jetzt. Der Datei-Menü-Eintrag „Unit verwenden“ vereinfacht dies sehr. Wenn Sie kein Datenmodul verwenden, müssen Sie eine Table-Komponente aus dem Datenzugriff-Register der Komponentenleiste hinzufügen. Setzen Sie die Eigenschaften der Table auf die angemessene Datentabelle. Die QuickRep-Komponente bietet ihre eigene Data Source, deshalb müssen Sie keine hinzufügen. Vergewissern Sie sich, dass Sie die DataSet-Eigenschaft der QuickRep-Komponente auf Ihre Table-Komponente gesetzt haben (entweder die aus dem Datenmodul oder die Table-Komponente auf dem gleichen Formular). Wenn Sie dies nicht tun, werden Sie in Ihrem Report keine Daten sehen. Setzen Sie nun die Eigenschaft Active auf true. Sie können dies später programmseitig tun, wenn Sie wollen. Einige Dinge werden aber vereinfacht, wenn Sie dies bereits jetzt zur Entwicklungszeit tun.
  3. Platzieren Sie die Datenfelder, die Sie sehen wollen, in der Reihenfolge, wie Sie sie sehen wollen auf dem Report. Indem Sie die Shift-Taste gedrückt halten, während Sie die QRDBText-Komponente auswählen, können Sie mehrere Felder nacheinander platzieren. Ich mag es jedoch, das erste Feld, nachdem ich Änderungen an DataSet und der Schrift, die ich vorziehe, gemacht habe, zu kopieren. Auf diese Art müssen Sie nur noch den Feldnamen ändern und die Komponente umbenennen. Das Umbenennen ist meiner Meinung nach optional, da Sie den Feldnamen Ihres Feldes nach der ersten Vorschau sehen. Die Standard-Feldgröße ist die Größe des Feldnamens. Das liegt daran, dass die Eigenschaft AutoSize auf true gesetzt ist, was bedeutet, dass das Feld seine Größe nach rechts den Datenänderungen entsprechend selbst anpassen wird. Die linke Seite ist der Anker, so dass Ihre Spalten ausgerichtet bleiben. Dies kann unordentlich aussehen, wenn die Daten in Ihren Feldern kleiner als der Feldname selbst sind. Wenn dies der Fall ist, empfehle ich, die Eigenschaft AutoSize auf false zu setzen und die Breite manuell zu verändern.
  4. Platzieren Sie die Labels für Ihre Report-Spalten. Ich platziere diese Labels gewöhnlich im Page Header Band. Es wird einmal am Anfang der Seite gedruckt. (Siehe den Abschnitt zur Terminologie zu Informationen über Bänder und wie sie arbeiten.) Weil Sie nicht genau wissen, wo Ihre Felder aufhören werden, Sie aber wissen, wo sie beginnen, empfehle ich diese Methode zur Platzierung der Labels. Platzieren Sie zuerst Ihr erstes QRLabel und ändern Sie die Schriftdetails, wie Sie wollen. Versuchen Sie nicht, Ihr Label manuell zu positionieren. Schauen Sie stattdessen die Eigenschaft left des Feldes, über dem das Label wohl positioniert wird, an und geben Sie die Zahl in die Eigenschaft left Ihres QRLabel ein. Dies wird die linken Seiten beider Komponenten automatisch ausrichten. Kopieren Sie nun und fügen den Rest Ihrer Labels ein, wobei Sie die Eigenschaft Left ändern, so dass Sie mit jedem Feld in Ihrem Report übereinstimmt.

TIPP 7

Wenn Sie die ganze Spalte unterstrichen haben wollen (nicht nur die einzelnen Wörter), fügen Sie Leerzeichen nach den Wörtern ein und setzn die Eigenschaft underlined von Font. Sie können auch einen Pseudo-Zentrier-Effekt erzeugen, indem Sie Leerzeichen auch an den Anfang der Wörter setzen. Indem Sie die Frame-Eigenschaft verändern, können Sie eine Spalte ebenfalls unterstreichen.

  1. Platzieren Sie alle berechneten Felder, die Sie brauchen. Berechnete Felder können in der Datenbanktabelle erzeugt werden, aber es ist normalerweise einfacher, eine QRExpr-Komponente zu verwenden, die die Arbeit stattdessen erledigt. Es ist wichtig zu wissen, dass die QRExpr-Komponente eine Eigenschaft hat, wo der vom Dialog erzeugte Ausdruck sogar gesetzt werden kann. In einigen Fällen können Sie einfach diese Zeile eingeben oder ändern, ohne wieder und wieder durch den Dialog-Ablauf zu gehen. Für weitere Details zu dieser Komponente, lesen Sie den Abschnitt über die Verwendung berechneter Felder später in diesem Tutorial.
  2. Platzieren Sie die Systemfelder, die Sie wollen. Der Standardwert für eine QRSysdata-Komponente ist Time. Das werden Sie ändern müssen, in was auch immer Sie verwenden wollen. Ein nettes Feature dieser Komponente ist die Eigenschaft Text, welche Informationen über Systemdaten, wie z.B. „Seitenzahl“, enthält. Wenn Sie größeren Abstand zwischen Text und Daten haben wollen, fügen Sie einfach Leerzeichen hinter den Wörtern im Text ein. 

Während dieses Prozesses empfehle ich Ihnen, die Vorschaumöglichkeit zu nutzen, welche Sie in der Quickreport-Komponente finden: Klicken Sie einfach rechts auf die Quickrep-Komponente und wählen Sie Preview (Vorschau). Die Vorschau hat allerdings Einschränkungen. Als erstes führt sie keine Berechnungen für berechnete Felder durch. Außerdem findet keine Before-Print-Logik, wie z.B. Filterungen, statt. Aus diesem Grund ist es notwendig, ein Mini-Programm zum Starten Ihres Reports zu verwenden, wenn Sie das wirkliche Ergebnis sehen wollen. Ein weiterer grundlegender Tipp: Die Bandhöhe bestimmt den Leerraum zwischen jeder Zeile. Indem Sie alle Felder in einem Band markieren und anschließend am oberen Rand ausrichten, bekommen Sie eine einheitliche Zeile. Nun können Sie sie an das obere Ende des Bandes schieben. Wenn sie einmal dort sind, können Sie die Bandhöhe anpassen, um unnötigen Leerraum zu entfernen.