Grundlegende Diagramme in Delphi-Anwendungen integrieren

In den meisten modernen Datenbankanwendungen ist eine Art grafische Datendarstellung vorzuziehen oder sogar erforderlich. Zu diesem Zweck enthält Delphi mehrere datensensitive Komponenten: DBImage, DBChart, DecisionChart usw. Das DBImage ist eine Erweiterung einer Image-Komponente, die ein Bild in einem BLOB-Feld anzeigt. Kapitel 3 dieses Datenbankkurses befasste sich mit der Anzeige von Bildern (BMP, JPEG usw.) in einer Access-Datenbank mit ADO und Delphi. Das DBChart ist eine datenbewusste Grafikversion der TChart-Komponente.

In diesem Kapitel möchten wir Ihnen das TDBChart vorstellen, indem wir Ihnen zeigen, wie Sie einige grundlegende Diagramme in Ihre Delphi ADO-basierte Anwendung integrieren.

TeeChart

Die DBChart-Komponente ist ein leistungsstarkes Tool zum Erstellen von Datenbankdiagrammen und -diagrammen. Es ist nicht nur mächtig, sondern auch komplex. Wir werden nicht alle seine Eigenschaften und Methoden untersuchen, daher müssen Sie damit experimentieren, um herauszufinden, wozu es in der Lage ist und wie es Ihren Anforderungen am besten entspricht. Durch die Verwendung von DBChart mit dem TeeChart-Diagrammmodul können Sie schnell und ohne Code Diagramme direkt für die Daten in Datensätzen erstellen. TDBChart stellt eine Verbindung zu einer beliebigen Delphi-DataSource her. ADO-Recordsets werden nativ unterstützt. Es ist kein zusätzlicher Code erforderlich - oder nur ein bisschen, wie Sie sehen werden. Der Diagrammeditor führt Sie durch die Schritte zum Herstellen einer Verbindung zu Ihren Daten. Sie müssen nicht einmal den Objektinspektor aufrufen.

Laufzeit-TeeChart-Bibliotheken sind Bestandteil der Delphi Professional- und Enterprise-Versionen. TChart ist auch in QuickReport mit einer benutzerdefinierten TChart-Komponente in der QuickReport-Palette integriert. Delphi Enterprise enthält ein DecisionChart-Steuerelement auf der Seite Decision Cube der Komponentenpalette.

Vorbereiten der Karte

Unsere Aufgabe wird es sein, ein einfaches Delphi-Formular mit einem Diagramm zu erstellen, das mit Werten aus einer Datenbankabfrage gefüllt ist. Erstellen Sie dazu ein Delphi-Formular wie folgt:

1. Starten Sie eine neue Delphi-Anwendung. Standardmäßig wird ein leeres Formular erstellt. 

2. Platzieren Sie die nächste Gruppe von Komponenten in dem Formular: ADOConnection, ADOQuery, DataSource, DBGrid und ein DBChart. 

3. Verwenden Sie den Objektinspektor, um ADOQuery mit ADOConnection, DBGrid mit DataSource mit ADOQuery zu verbinden. 

4. Stellen Sie mit dem ConnectionString der ADOConnection-Komponente eine Verbindung zu unserer Demo-Datenbank (aboutdelphi.mdb) her. 

5. Wählen Sie die ADOQuery-Komponente aus und weisen Sie der SQL-Eigenschaft die nächste Zeichenfolge zu:

SELECT TOP 5 Kunden.Unternehmen,
SUM (orders.itemstotal) AS SumItems,
COUNT (orders.orderno) ALS NUMMERN
VOM Kunden, Bestellungen
WO customer.custno = orders.custno
GROUP BY customer.Company
AUFTRAG NACH SUMME (orders.itemstotal) DESC
Diese Abfrage verwendet zwei Tabellen: Aufträge und Kunden. Beide Tabellen wurden aus der (BDE / Paradox) DBDemos-Datenbank in unsere Demo-Datenbank (MS Access) importiert. Diese Abfrage führt zu einer Datensatzgruppe mit nur 5 Datensätzen. Das erste Feld ist der Firmenname, das zweite (SumItems) ist eine Summe aller Bestellungen der Firma und das dritte Feld (NumOrders) repräsentiert die Anzahl der Bestellungen der Firma. Beachten Sie, dass diese beiden Tabellen in einer Master-Detail-Beziehung verknüpft sind.
6. Erstellen Sie eine permanente Liste von Datenbankfeldern. (Um den Felder-Editor aufzurufen, doppelklicken Sie auf die ADOQuery-Komponente. Standardmäßig ist die Liste der Felder leer. Klicken Sie auf Hinzufügen, um ein Dialogfeld mit den Feldern zu öffnen, die von der Abfrage abgerufen wurden (Firma, NumOrders, SumItems). Standardmäßig sind alle Felder leer Klicken Sie auf OK.) Auch wenn Sie für die Arbeit mit einer DBChart-Komponente keine permanenten Felder benötigen, erstellen wir sie jetzt. Die Gründe werden später erläutert. 

7. Setzen Sie ADOQuery.Active im Objektinspektor auf True, um die Ergebnismenge zur Entwurfszeit anzuzeigen.