Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL und FireBird sind wahrscheinlich die beliebtesten Datenbanken, aber das sind nur einige der zahlreichen Datenbanken, in denen Daten erstellt, gefüllt, geändert und verwaltet werden können.
Oft erfüllen die Anwender eine Datenbank mit einer großen Daten Menge (z. B. in Zeiterfassungssystemen, Warenbestellungen) und es immer kommt in Frage „Wie erhält man die gewünschten Informationen?“ Daten sollen lesbar, verständlich oder zur weiteren Analyse bereit sein. Überlegen Sie, dass wenn wir über eine „vollständige Datenbank“ von Daten verfügen und wir (oder das Management des Unternehmens) wissen sollen, was in realer Zeit passiert. Also, lassen Sie uns die Daten effektiv nutzen! Im Laufe vom Arbeitszyklus werden die Daten gesammelt, dargestellt und analysiert! “Grundsätzlich ist dies die Definition von Business Intelligence (BI) in einer zugänglichen Sprache.
Es gibt viele Möglichkeiten, Reporte zu erstellen, eine von denen FastReport VCL ist. Es gibt einen Designer zum Generieren von Vorlagen, eine Vorschau und viele anderen Funktionen zum Ausführen von Aufgaben auf verschiedenen Ebenen - wir haben sie in anderen Artikeln berücksichtigt.
FastReport kann gleichzeitig mit mehreren Datenbanken arbeiten und kann aus sogenannten Benutzerquellen (keine Datenbank) die Daten extrahieren - Arrays oder gewöhnlichen Dateien.
Um die Informationsquelle zu verbinden, müssen Sie den Connector (TfrxDBDataSet) aus der Komponentenpalette verwenden. Dies ist die Verbindung zwischen Daten und FastReport.
Jetzt werde ich Ihnen kurz die Rolle der Komponenten erklären:
TfrxDBDataSet ist ein Element, das für die Arbeit mit der Datenquelle verwendet wird. Es ist auch mit TDataSet kompatibel, TfrxIBODataSet wird jedoch für IB-Objekte verwendet und TfrxUserDataSet clip0143 ist für andere Ressourcen vorgesehen - Arrays, Dateien usw.
Zunächst stellen wir über die DataSet-Eigenschaft eine Verbindung zur Abfrage selbst oder zur Tabelle, zum Brunnen oder zur DataSource her (sie stellt auch eine Verbindung zur TDataSource-Komponente her).
Damit die Daten jedoch bereits im Report enthalten sind, sollen Sie angeben, welche davon in unseren Report aufgenommen werden sollen! Dies ist auch einfach zu tun.
Wählen Sie im FastReport VCL-Designer im Menü Bericht -> Daten.
Klicken Sie auf die gewünschten Elemente und klicken Sie auf "OK"!
Wir verbinden diese Datenquelle mit dem Band. Wir wählen eine DataSet (Tabelle) in seinen Eigenschaften. Ziehen Sie nun die Tabellen- / Abfragefelder auf die entsprechenden Bänder. Nach einem einzigen Zug haben sie eine Besonderheit, sich automatisch mit den Bandfeldern der Basis zu verbinden.
Wenn Sie den generierten Report anzeigen sollen, können Sie die Vorschau verwenden! Vergessen Sie nicht, dass Sie fast alles hinzufügen können, sei es QR-Сode, Karten und andere Add-Ons, die in FastReport VCL ausreichen.
Im oberen linken Menü klicken Sie auf "Datei".
Eine Liste der Einstellungen wurde sofort angezeigt. Darin wählen wir "Vorschau".
Und das ist alles! Nach dieser Aktion werden wir sehen, wie der fertige Report aussehen wird.
Wenn alles zu Ihnen passt, können Sie den Report drucken, in verschiedene Formate exportieren und auf den Cloud-Speicher oder auf den PC-Speicher speichern.
Wir wählen "Speichern" und das gewünschte Format.
Der ausgewählte Report wird zum Speichern / Exportieren an den angegebenen Speicherort gesendet!
Gehen Sie folgendermaßen vor, um einen Report aus Code zu erstellen:
- Löschen Sie den Report.
- Fügen Sie die Datenquelle hinzu.
- Fügen Sie die Seite "Daten" hinzu.
- Fügen Sie eine Reports Seite hinzu.
- Fügen Sie der Seiten Bänder hinzu.
- Band Eigenschaften konfigurieren und mit Daten verbinden
- Fügen Sie jedem Band Objekte hinzu.
- Weiter richten sie die Eigenschaften von Objekten ein und machen Sie eine Verbindung mit den Daten.
Speichern Sie die Vorlage und klicken Sie auf "Vorschau"!
Der Report ist fertig! Wir können ihn auch zur weiteren Analyse in XML, PDF oder sogar in CSV oder in DBF speichern!
Ich verstehe, dass eine solche Fülle von Screenshots zu Depressionen führen kann. Beim Schreiben dieses Artikels war es jedoch die längste und mühsamste Aufgabe, all diese Screenshots zu machen. Die Erstellung des Reports selbst dauerte ungefähr 5 Minuten. Und wenn er schneller und ohne Screenshots ist?
Wir erstellen einen einfachen Report vom Typ "Liste". Es wird davon ausgegangen, dass wir die Komponenten frxReport1: TfrxReport und frxDBDataSet1: TfrxDBDataSet haben (letzte Variante war mit den Daten aus DBDEMOS verbunden, Tabelle Customer.db). Unser Report enthält eine Seite mit dem Reports Titel und den Stammdatenbändern. Auf dem Reporttitelband befindet sich ein Objekt mit dem Text "Hello FastReport!" Und auf den Stammdaten platziert sich ein Objekt mit einem Link zum Feld "CustNo".
Wir transformieren Daten aus den Datenbanken ins Dokument in Delphi / Lazarus / C++ Builder | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView; { Report leeren } frxReport1.Clear; {Eine Datenquelle in der Liste der für den Report verfügbaren Datenquellen hinzufügen } frxReport1.DataSets.Add(frxDBDataSet1); {Die Seite „Daten“ hinzufügen } DataPage := TfrxDataPage.Create(frxReport1); {Die Seite hinzufügen } Page := TfrxReportPage.Create(frxReport1); { Einen einzigen Namen erstellen } Page.CreateUniqueName; { Die Große der Felder, Papier und Orientation by Default bestimmen } Page.SetDefaults; { Die Papier Orientation ändern } Page.Orientation := poLandscape; { Report Titel hinzufügen } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { Es ist reicht fürs Band die Koordinate Top und die Höhe zu bestimmen } { Beide Koordinaten – in Pixel } Band.Top := 0; Band.Height := 20; { Das Objekt auf Report Titel hinzufügen } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; {Dieses Objekt hat eine adaptierte Breite, die zur Banden Breite gleich ist } Memo.Align := baWidth; { MasterData hinzufügen } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { Die Top Koordinate soll nicht das früher erstellte Band überqueren! } DataBand.Top := 100; DataBand.Height := 20; { Ein Objekt auf MasterData hinzufügen } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { Mit den Daten verbinden } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { Den Text für den rechten Rand des Objekts anordnen } Memo.HAlign := haRight; { Den Report anzeigen } frxReport1.ShowReport; |
Also, wir sammeln jetzt unsichtbare Daten und zeigen sie in den Reporten. Jetzt ist es möglich diese Reporte zu veröffentlichen und den Analytikern zu senden!