Diagramme aus Datensätzen einer Datenbank (Beispiele)

4D - Documentation   Français   English   German   4D Chart, Befehle nach Themen   4D Chart, Befehle alphabetisch   Back   Previous   Next

Version 6.0 (Geändert)


Dieser Abschnitt zeigt Beispiele für zwei- und dreidimensionale Diagramme, die mit den Funktionen CT Chart selection und CT Chart data erstellt wurden.

Wie Sie zwei- und dreidimensionale Diagramme anhand von Arrays erstellen, erfahren Sie im Abschnitt Diagramme aus Arrays (Beispiele).

Jedes Beispiel enthält:

Eine Beschreibung der Ausgangssituation,

Die Struktur der Beispieldatenbank,

Ein Diagramm, das anhand der Beispieldaten komplett programmiert wurde,

Den Code zum Erstellen dieses Diagramms.

Zweidimensionales Diagramm mit Reihen aus Feldern erstellen

Nehmen wir an, Sie besitzen ein Software-Unternehmen mit Kunden in vielen verschiedenen Marktsektoren. Das Spektrum reicht von Endkunde über Firmenkunde bis hin zum Zwischenhändler. Ihre Datenbank überwacht Kunden und Verkäufe.

Dafür gibt es folgende Tabelle:

Mit 4D Chart erstellen Sie ein Tortendiagramm, das für jede Kundenart den Gesamtverkauf in Prozent angibt.

Dieses Diagramm wurde mit der Methode DIAGRAMM MARKTSEKTOR erstellt.

   `Methode: DIAGRAMM MARKTSEKTOR
   `Kategorien: Kundenart
   `Werte: AnzahlVerkauf

   C_LONGINT ($Left;$Top;$Right;$Bottom)
   C_LONGINT ($Bereich;$Chart;$Title;$Locate)
   C_LONGINT ($Left2;$Top2;$Right2;$Bottom2)

     `Erstelle Auswahl der Datensätze für das Diagramm
   ALL RECORDS ([Marktdaten])

     `Array der Felder für Datenreihe
   ARRAY LONGINT ($aFields;1)
   $aFields{1}:=Field(->[Marktdaten]AnzahlVerkauf)

     `Oberflächenelemente ausblenden
   CT SET DISPLAY (Bereich;1;0)  `Menüleiste ausblenden
   CT SET DISPLAY (Bereich;2;0)  `Chart Toolbar ausblenden
   CT SET DISPLAY (Bereich;3;0)  `Objekt Toolbar ausblenden
   CT SET DISPLAY (Bereich;6;0)  `Rollbalken ausblenden

   CT SET DISPLAY (Bereich;9;0)  `Lineal ausblenden

     `Erstelle Tortendiagramm
   $Chart:=CT Chart selection (Bereich;6;1;1;Table(->[Marktdaten]);2;$aFields)

     `Verschiebe Tortenstück #3  um 10 Grad
   CT EXPLODE PIE (Bereich;$Chart;2;10)

     `Setze Position der Legende (unten, horizontal)
   CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;8;0;0)

     `Füge links oben Titel hinzu
   $Title:=CT Draw text (Bereich;1;1;210;3;"Kundenverteilung nach Sektor")

     `Format des Titels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz)
   $Color:=CT Index to color (16)
   $Font:=CT Font number ("Palatino")
   CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1)

     `Erhalte Größe des Bereichs zum Zentrieren
   CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom)

     `Passe Diagramm an die Fenstergröße minus 50 Punkt an
   CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50)

     `Zentriere Diagramm
   CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Chart;$Locate;$Top2)

     `Zentriere Titel
   CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Title;$Locate;$Top2)

     `Bewege Diagramm 9 Punkt nach unten
   CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom)
   CT MOVE (Bereich;$Chart;$Left;$Top+9)

     `Alle Objekte abwählen
   CT SELECT (Bereich;-1;0)

Dreidimensionales Diagramm mit Reihen aus Feldern erstellen

Nehmen wir an, Sie analysieren den Markt für Neuwagen und verwenden eine Datenbank, um das beste Auto für Ihr Geld herauszufinden. Sie haben Ihre Suche auf fünf Autos konzentriert und möchten vergleichen, wieviel Kosten jedes Auto pro Jahr für Kfz-Steuer, Versicherung und Wartung verursacht.

Sie geben die Daten in folgende Tabelle ein:

Zum Analysieren stellen Sie die gesammelte Information in einem dreidimensionalen Diagramm dar.

Mit 4D Chart erstellen Sie folgendes Diagramm:

Dieses Diagramm wurde mit der Methode DIAGRAMM AUTOKOSTEN erstellt. Sie verwendet die Funktion CT Chart selection. Mit dieser Funktion übergeben Sie ein Array von Feldern. Die Namen der Felder werden die Namen der Reihen, ihre Werte werden auf der Werteachse gezeichnet. In diesem Beispiel wurden die Felder Steuer, Versicherung und Wartung für die Reihen und Werte verwendet.

Die Methode DIAGRAMM AUTOKOSTEN lautet:

      `Methode: DIAGRAMM AUTOKOSTEN
      `Kategorien: Autotyp
      `Reihen: Kostenart
      `Werte: Kosten in Euro

   C_LONGINT ($Left;$Top;$Right;$Bottom)
   C_LONGINT ($Area;$Chart;$Title;$Locate;$i)
   C_LONGINT ($Left2;$Top2;$Right2;$Bottom2)

     `Erstelle Auswahl der Datensätze für das Diagramm
   ALL RECORDS ([Autokosten])
   ORDER BY ([Autokosten];[Autokosten]Kosten;>)

     `Array der Felder für Datenreihe
   ARRAY LONGINT ($aFields;3)
   $aFields{1}:=Field (->[Autokosten]Steuer)
   $aFields{2}:=Field (->[Autokosten]Wartung)
   $aFields{3}:=Field (->[Autokosten]Versicherung)

   `Oberflächenelemente ausblenden
   CT SET DISPLAY (Bereich;1;0)  `Menüleiste ausblenden
   CT SET DISPLAY (Bereich;2;0)  `Diagrammwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;3;0)  `Objektwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;6;0)  `Rollbalken ausblenden
   CT SET DISPLAY (Bereich;9;0)  `Lineal ausblenden

     ` Erstelle Diagramm mit 3D Säulen
   $Chart:=CT Chart selection (Bereich;100;1;1;Table(->[Autokosten]);1;$aFields)

     `Richte Skala ein
   CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;0;3000;500;100)

     `Zeige Legende nicht an
   CT SET LEGEND ATTRIBUTES (Bereich;$Chart;0;0;-1;-1;0;0;0)

     `Füge Bezeichnung der Achsen hinzu
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;3;0;"Autotyp")
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;1;0;0;"")  `Nicht zeigen
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;2;3;"Kosten (in Euro)")

     `Füge links oben Diagrammtitel hinzu
   $Title:=CT Draw text (Bereich;1;1;300;3;"Jährliche Kosten für Sedan Import")

     `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz)
   $Color:=CT Index to color (16)
   $Font:=CT Font number ("Palatino")
   CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1)

     `Setze Farbe für 1. Reihe/grün ausfüllen
   $Color:=CT Index to color (10)
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;100;3;$Color)

     `Setze Farbe für 2. Reihe/gelb ausfüllen
   $Color:=CT Index to color (2)
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;200;3;$Color)

     `Setze Farbe für 3. Reihe/rot ausfüllen
   $Color:=CT Index to color (4)
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;300;3;$Color)

     `Setze Füllfarbe für alle Rechtecke im Gitter
   $Color:=CT Index to color (8)
   For ($i;1;3)
     CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;1;$i;5;$Color)
   End for 

     `Setze Texteigenschaften für Beschriftung (Palatino, 9 Punkt, Fett Kursiv)
   $Font:=CT Font number ("Palatino")
   For ($i;0;2)
     CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;4;$i;$Font;9;3;-1)
   End for 

     `Setze Texteigenschaften für Titel (Palatino, 12 Punkt, Fett)
   $Font:=CT Font number ("Palatino")
   For ($i;0;2)
     CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;$i;$Font;14;1;-1)
   End for 

     `Erhalte Größe des Bereichs zum Zentrieren
   CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom)

    `Passe Diagramm an die Fenstergröße minus 50 Punkt an
   CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50)

     `Zentriere Diagramm
   CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Chart;$Locate;$Top2)

     `Zentriere Titel
   CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Title;$Locate;$Top2)

     Bewege Diagramm 9 Punkt nach unten
   CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom)
   CT MOVE (Bereich;$Chart;$Left;$Top+9)

     `Alle Objekte abwählen
   CT SELECT (Bereich;-1;0)

Zweidimensionales Diagramm mit Reihen aus Daten in Datensätzen erstellen

Nehmen wir an, Sie sind Leiter eines Ausbildungsprogramms für Bayern und möchten vergleichen, welche Testergebnisse die Auszubildenden in den einzelnen Bundesländern an verschiedenen Testtagen erzielen.

Ihre Datenbank enthält die Punktzahlen der Auszubildenden, sortiert nach Testdatum und Region.

Mit 4D Chart erstellen Sie folgendes Diagramm:

Dieses Diagramm wurde mit der Methode 2D DIAGRAMM PUNKTZAHL erstellt. Sie lautet:

      `Methode: 2D DIAGRAMM PUNKTZAHL
      `Kategorien: Testdatum
      `Reihen: Bundesland
      `Werte: Testergebnis

   C_LONGINT ($Left;$Top;$Right;$Bottom)
   C_LONGINT ($Left2;$Top2;$Right2;$Bottom2)
   C_LONGINT ($Area;$Chart;$Title;$Locate;$Score;$Color;$Font;$Rect)

   ALL RECORDS ([Testergebnisse])
   ORDER BY ([Testergebnisse];[Testergebnisse]Testdatum;>)
    `Oberflächenelemente ausblenden
   CT SET DISPLAY (Bereich;1;0)  `Menüleiste ausblenden
   CT SET DISPLAY (Bereich;2;0)  `Diagrammwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;3;0)  `Objektwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;6;0)  `Rollbalken ausblenden
   CT SET DISPLAY (Bereich;9;0)  `Lineal ausblenden
     `Erstelle zweidimensionales Diagramm
   $Chart:=CT Chart data (Bereich;2;1;1;1;Table (->[Testergebnisse]);2;4;3)

     `Erstelle Diagramm im Querformat
   ARRAY LONGINT ($aOptions;4)
   $aOptions{1}:=1  `Ausrichtung: horizontal 
   $aOptions{2}:=0  `Gestapelt: normal
   $aOptions{3}:=0  `Überlappen:
   $aOptions{4}:=50  `Abstand:
   CT SET CHART OPTIONS (Bereich;$Chart;$aOptions)

     `Zeige Achsenbezeichnung
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;2;3;"Testdatum")
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;3;0;"Durchschnittl. Punktzahl")

     `Format für Bezeichnung der Achse Kategorien (Helvetica, Schwarz, Fett Kursiv, 12 Punkt)
   $Color:=CT Index to color (16)
   $Font:=CT Font number ("Helvetica")
   CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;0;$Font;12;3;$Color)

     `Format für Bezeichnung der Achse Werte (Palatino, Rot, Fett Kursiv, 12 Punkt)
   $Color:=CT Index to color (4)
   $Font:=CT Font number ("Palatino")
   CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;2;$Font;12;3;$Color)

     `Setze Position der Beschriftung auf unten, zentriert, horizontale Ausrichtung
   CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;8;0;0)

     `Füge Diagrammtitel oben links ein
   $Title:=CT Draw text (Bereich;1;1;350;3;"Testergebnisse Azubis in Deutschland")

     `Format für Diagrammtitel (Geneva, 14 Punkt, Fett, Zentriert, Blau)
   $Color:=CT Index to color (7)
   $Font:=CT Font number ("Geneva")
   CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1)

     `Verwende eigene Skala
   CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;0;220;20;5)
     `Erhalte Größe des Bereichs zum Zentrieren
   CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom)

     `Passe Diagramm an die Fenstergröße minus 50 Punkt an
   CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50)

     `Richte Diagramm horizontal aus
   CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Chart;$Locate;$Top2)

     `Richte Titel horizontal aus
   CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2

CT MOVE (Bereich;$Title;$Locate;$Top2)      Bewege Diagramm 10 Punkt nach unten    CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom)    CT MOVE (Bereich;$Chart;$Left;$Top+10)      `Setze um Diagramm und Titel graues Rechteck    $Rect:=CT Draw rectangle (Bereich;$Left-2;$Top2-2;$Right+2;$Bottom+2+10;0)    CT SET FILL ATTRIBUTES (Bereich;$Rect;3;CT Index to color (13))    CT SET LINE ATTRIBUTES (Bereich;$Rect;3;CT Index to color (15);1)      `Richte alle Objekte vertikal aus    CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom)    CT GET BOUNDARY (Bereich;-1;$Left2;$Top2;$Right2;$Bottom2)    $Locate:=(($Bottom-$Top)-($Bottom2-$Top2))/2    CT MOVE (Bereich;-1;$Left2;$Locate)      `Setze Rechteck in den Hintergrund    CT SELECT (Bereich;-1;0)  `Alles abwählen    CT SELECT (Bereich;$Rect;1)  `Wähle Rechteck    CT DO COMMAND (Bereich;24002)  `Setze in Hintergrund    CT SELECT (Bereich;-1;0)  `Alles abwählen      `Alle Objekte abwählen    CT SELECT (Bereich;-1;0)

Dreidimensionales Diagramm mit Reihen aus Daten in Datensätzen erstellen

Nehmen wir an, Sie möchten wissen, wie der Produktumsatz Ihrer Firma im Vergleich zu anderen Firmen Ihrer Branche aussieht. Sie speichern den täglichen Umsatz jeder Firma in einer 4th Dimension Datenbank. In der Beispieldatenbank wurden die Umsätze im Monatsdurchschnitt gespeichert.

Das folgende Diagramm vergleicht den Wert der Firma Müller Schuhe mit dem Durchschnitt der Branche. Die Daten dafür wurden direkt, also ohne zusätzliche Bearbeitung aus der Datenbank entnommen.

Die Methode DIAGRAMM UMSATZ erstellt ein Diagramm mit den Werten der Felder direkt aus der Datenbank. Sind in der Datenbank bereits die Durchschnittswerte berechnet, müssen Sie keine weiteren Berechnungen durchführen. Haben Sie dagegen nur den jeweiligen Tages-wert gespeichert, müssen Sie erst den monatlichen Durchschnitt ausrechnen, diesen in einem Array speichern und das Diagramm mit der Funktion CT Chart arrays erstellen.

Ein Beispiel für ein Diagramm mit Array finden Sie im Abschnitt Zweidimensionales Diagramm aus Arrays erstellen.

Die Methode DIAGRAMM UMSATZ gilt für bereits in der Datenbank berechnete Durchschnitts-werte:

     `Methode: DIAGRAMM UMSATZ
     `Kategorien: Monate des Jahres
     `Reihen: Leistung der Firma bzw. der Branche
     `Werte: Durchschnittl. Umsatz

   C_LONGINT ($Left;$Top;$Right;$Bottom)
   C_LONGINT ($Left2;$Top2;$Right2;$Bottom2)
   C_LONGINT ($Area;$Chart;$Title;$Locate;$Font;$Color)

     `Erstelle Auswahl der Datensätze für das Diagramm
   ALL RECORDS ([Umsatzberichte])
   ORDER BY ([Umsatzberichte];[Umsatzberichte]Monat;>)

    `Oberflächenelemente ausblenden
   CT SET DISPLAY (Bereich;1;0)  `Menüleiste ausblenden
   CT SET DISPLAY (Bereich;2;0)  `Diagrammwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;3;0)  `Objektwerkzeuge ausblenden
   CT SET DISPLAY (Bereich;6;0)  `Rollbalken ausblenden
   CT SET DISPLAY (Bereich;9;0)  `Lineal ausblenden

     `Erstelle 3D Liniendiagramm
   $Chart:=CT Chart data (Bereich;101;2;1;1;Table (->[Umsatzberichte]);2;1;3)

     `Lege Skala fest
   CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;5;20;5;1)

     `Drehe Diagramm in beiden Richtungen um 0 Grad
   CT SET 3D VIEW (Bereich;$Chart;0;0)

    `Setze Füllfarbe für alle Rechtecke im Gitter
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;1;1;5;CT Index to color (15))

     `Setze Füllfarbe für Reihen (Grün, Rot)
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;100;3;CT Index to color (10))
   CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;200;3;CT Index to color (4))

     `Setze Linienstärke und -farbe für Reihen (Grün, Rot, 4 Punkt)
   CT SET CHART LINE ATTRIBUTES (Bereich;$Chart;8;100;3; CT Index to color (10);4)
   CT SET CHART LINE ATTRIBUTES (Bereich;$Chart;8;200;3; CT Index to color (4);4)

     `Setze Texteigenschaften für Achsenbezeichnung  (Palatino, Fett Kursiv, 12 Punkt)
   $Font:=CT Font number ("Palatino")
   $Color:=CT Index to color (16)  `Schwarz
   CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;0;$Font;12;3;$Color)
   $Color:=CT Index to color (10)  `Grün
   CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;2;$Font;12;3;$Color)

     `Zeige Beschriftung der Achsen
   CT SET LABEL ATTRIBUTES (Bereich;$Chart;2;3;0;"Euro ##")
   CT SET LABEL ATTRIBUTES (Bereich;$Chart;0;3;3;"##/##/##")
   CT SET LABEL ATTRIBUTES (Bereich;$Chart;1;0;0;"")  `Diese Bezeichnungen ausblenden

     `Füge Bezeichnung für Kategorie- und Werteachse hinzu
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;3;0;"Datum")
   CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;2;3;"durchschnittl. Lagerpreis")

      `Setze Position der Legende (oben zentriert, horizontal)
   CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;7;0;0)

      `Füge links oben Diagrammtitel hinzu
   $Title:=CT Draw text (Bereich;1;1;350;3;"Leistung: Firma vs Branche")

     `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Blau)
   $Color:=CT Index to color (7)
   $Font:=CT Font number ("Palatino")
   CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1)

     `Erhalte Größe des Bereichs zum Zentrieren
   CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom)

    `Passe Diagramm an die Fenstergröße minus 50 Punkt an
   CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50)

     `Zentriere Diagramm
   CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
   $Locate:=(($Right-$Left)-($Right2-$Left2))/2
   CT MOVE (Bereich;$Chart;$Locate;$Top2)

4D - Documentation   Français   English   German   4D Chart, Befehle nach Themen   4D Chart, Befehle alphabetisch   Back   Previous   Next