Phönix 5.0 in der Praxis: Erstellen von Reports, Eingabemasken und Abfragen
Nachdem im letzten Teil die Datenbankstruktur entworfen wurde, geht es in dieser Fortsetzung der dreiteiligen Artikelreihe zu Phönix um die Gestaltung von Ein-/Ausgabe- und Verarbeitungsmöglichkeiten von Datenbeständen.
Eine Eingabemaske ist notwendig, um Daten in die Datenbank aufzunehmen. Leider existiert keine Möglichkeit, Daten direkt in eine Tabelle einzufügen, so daß auf eine Maske nicht verzichtet werden kann. Daher erstellt Phönix beim Speichern der Datenbankstruktur automatisch eine Standardmaske, die in der Regel allerdings nicht den eigenen Vorstellungen entspricht. Anhand unserer Beispieldatenbank (Heft 6/98) möchte ich Ihnen einige Möglichkeiten vorstellen, um die Maske unseren Anforderungen anzupassen.
Verschiedene Eingabefelder sollen mit einer Popup/Listbox (häufig auch Dropdown oder Pulldown genannt) versehen werden. Diese bietet die Möglichkeit, Daten aus einer Wertetabelle auszuwählen und einzufügen. Damit auf die Wertetabelle zugegriffen werden kann, muß eine Verbindung zwischen den entsprechenden Feldern hergestellt werden. Diese Verbindung ist nicht mit einer Beziehung zu verwechseln, da in diesem Fall keine Bedingungen und Abhängigkeiten geschaffen werden.
Starten Sie bitte den Designer und öffnen Sie die Fußball-Datenbank. Wählen Sie unter Sicht" die Option Wertetabeilen" aus, und aktivieren Sie anschließend das geschlängelte Icon. Jetzt kann eine Verbindung von Tabelle.Vereinsname" nach Ver-ein.Vereinsname" gezogen werden. Die Pfeilrichtung zeigt an, daß die Tabelle Tabelle" auf die Tabelle Verein" zugreifen kann. Die Tabelle Verein" ist also unsere Wertetabelle. Stellen Sie die weiteren benötigten Verbindungen gemäß der Abbildung l her.
Öffnen Sie die Maske der Tabelle Verein" , indem Sie das Masken-lcon auf die entsprechende Tabelle ziehen. Mit einem Doppelklick auf das Feld Managername" erscheint ein Fenster mit diversen Einstellmöglichkeiten (Abb. 2).
Über dieses Datenfeld soll auf die Wertetabelle Manager zugegriffen werden, daher wählen wir für die Darstellung Popup/Listbox" aus. Die gleichen Einstellungen gelten für das Feld Trainername".
Den Anwender der Datenbank interessiert natürlich, welche Spieler momentan im ausgewählten Verein aktiv sind. Hier kommt unsere im letzten Artikel erstellte Beziehung zum Tragen. Bei immer noch geöffneter Bildschirmmaske aktivieren Sie das Masken-lcon und ziehen ein Feld mit gedrückter Maustaste auf. Im Dialogfenster sehen Sie unter Herkunftsmaske" alle mit der Tabelle Vereine" verknüpften Tabellen. Die Herkunftsmaske Spieler" ist in diesem Fall die korrekte. Damit eine Übersicht gewährleistet ist, sollte die Anzeigeart die Tabellenform sein. Durch die Eingabe von Breiten und Höhen wird der dargestellte Ausschnitt der Tabelle angegeben. Da für eine Überprüfung des Ergebnisses ständig zwischen Manager und Designer gewechselt werden muß, ist hier ein wenig Geduld gefordert, bis die gewünschte Größe erreicht ist.
Damit haben Sie eine Untermaske erstellt, in der die abhängigen Datensätze aus der Spielertabelle angezeigt werden.
In der Bildschirmmaske Spieler" stellen Sie für Vereinsname" wieder Popup/Listbox" ein.
Eine neue Darstellungsart kommt für die Position der Spieler hinzu. Hier ist es angebracht, Werte vorzugeben, die mittels Radio-Knopf" ausgewählt werden können. Das erspart dem Anwender Tipparbeit und verhindert immer wieder abweichende Angaben. Ergebnisse wie Mittelfeld, in der Mitte oder mittig wären dann die Folge.
Nachdem Sie die Darstellungsart eingestellt haben, kommen jetzt die fest definierten Werte hinzu. Unter Werte" erscheint eine neue Dialogbox, in der mit dem Trennzeichen |" die Werte eingetragen werden. In unserem Beispiel nehmen wir: Abwehr/Mit-telfeld/Sturm. Eine weitere Präzisierung ist für die Fußballfreaks unter den Lesern natürlich jederzeit möglich. Die Untergrenze wird mit l und die Obergrenze mit 3 angegeben (3 verschiedene Optionen).
Stellen Sie bitte in der Tabelle" für das Feld Vereinsname" die Darstellungsart Popup/Listbox" ein.
Abschließend sollten Sie das Feld To-reDiff" als Ausgabefeld definieren (Doppelklick auf das entsprechende Feld in der Tabelle), da es für die spätere Berechnung als Ergebnisfeld dient und daher eine Sperrung für die Eingabe angebracht ist.
Damit ist das Kapitel Designer erst einmal abgeschlossen, und wir wenden uns nun dem Manager zu.
Nach der Eingabe von Punkten, Toren etc. sollen automatisch die Platzierungen der Vereine berechnet werden. Dazu schreiben wir uns eine kleine Rechnung. Die Tabelle Tabelle" muss dabei markiert sein, damit die Rechnung entsprechend zugeordnet werden kann. Klicken Sie auf das Taschenrechnersymbol und geben folgende Formel ein: ToreDiff=TorePlus-ToreMinus; (oder optional über die Pulldownmenüs).
Das Grundprinzip dürfte anhand dieser Formel klar geworden sein. Das Ergebnisfeld wird als erstes benannt, gefolgt von der eigentlichen Rechnung und abgeschlossen mit dem Semikolon. Komplexe Verschachtelungen und IF-THEN-ELSE Funktionen sind an dieser Stelle möglich, doch dazu im letzten Teil unserer Artikelreihe mehr.
Schließen Sie das Fenster und speichern die Rechnung unter dem Namen Tabellenplätze" ab.
Damit das Ergebnis sinnvoll sortiert wird, benötigen wir eine Abfrage. Klicken Sie auf das Icon mit dem Fragezeichen und dann auf +/-" Wählen Sie den Sortierungsmodus Absteigend" und verschieben Sie zuerst das Feld Punkte" und dann ToreDiff" zu Sortiert nach" (Abb. 3).
Beim Aufruf dieser Abfrage wird unsere Tabelle fortan zuerst nach den Punkten und bei Gleichstand nach der Tordifferenz sortiert.
Schließen und speichern Sie die Abfrage möglichst unter dem Namen Tabelle", dadurch wird erreicht, daß beim Aufruf der Tabelle automatisch die Abfrage mit gleichem Namen aktiviert wird. Ansonsten müßte die Abfrage gesondert gestartet werden.
Wechseln Sie bitte wieder in den Designer" und öffnen Sie dort die Maske für die Tabellenplätze. Mit einem Doppelklick auf die leere Fläche wird ein Masken-Info" aufgerufen. Tragen Sie in der Ausgangsrechnung" den Namen der oben erstellten Rechnung ein, also Tabellenplätze" und verlassen Sie den Designer" anschließend wieder (Speichern nicht vergessen!).
Durch diese Angabe wird das Ergebnis sofort beim Speichern aktualisiert, andernfalls müßte der Anwender zum Aktualisieren das Rechner-Icon betätigen.
Das Berichtsfenster ist intuitiv bedienbar, ähnlich einer Textverarbeitung. Mit einem Doppelklick auf das obere Lineal erscheint eine Auswahlbox mit diversen Eigenschaften für den Bericht. Besondere Beachtung ist dabei der Datenherkunft und dem Namen der Tabelle/Abfrage zu widmen. Erstellt werden soll ein Report für die Tabellenplätze, also geben Sie bitte als Datenherkunft Abfrage" und als Abfrage Tabelle" ein bzw. die Namen, die Sie gewählt haben.
Ein Bericht unterteilt sich in drei bzw. fünf Bereiche: Seitenkopf/-fuß (Ausdruck auf jeder neuen Seite), Be-richtskopf/-fuß (Ausdruck einmalig auf Seite 1) und den Detailbereich, in dem für gewöhnlich alle gewünschten Datensätze ausgedruckt werden.
In der Abb. 4 habe ich in den Seitenkopf die Überschriften gesetzt (A-Icon) und in den Detailbereich die Felder (ab-lcon) für die Datensätze. Das gewünschte Datenfeld muß vorher im Pulldown-Menü ausgewählt werden.
Schließen und speichern Sie den Bericht unter dem Namen Tabellenplätze".
Abschließend brauchen wir noch einen Report, der die Vereine mit ihren Spielern ausdrucken kann.
Erstellen Sie einen neuen Bericht aus der Tabelle Spieler", und ziehen Sie die Felder Vereinsname" und Spieler" in den Detailbereich. Hierbei tritt ein Problem auf, bei dem der Entwickler tricksen" muß. Phönix kennt keine Gruppierung! Das bedeutet, das Programm druckt vor jeden Spieler den Vereinsnamen. Bei einer Gruppierung nach Vereinen würde dieser Fall nicht auftreten. Hiermit ein dringender Aufruf an Application Systems Heidelberg: Bitte führt im nächsten Update eine Gruppierungsfunktion ein.
Phönix bietet allerdings eine Möglichkeit, dieses Problem zu umgehen. Rufen Sie die Eigenschaften mit einem Doppelklick auf dem Feld Vereinsname" auf, und aktivieren Sie Duplikate ausblenden". Damit erreichen wir, daß der Vereinsname einmalig erscheint. Nicht sehr elegant, aber es funktioniert.
Bei Bedarf können Sie mich weiterhin unter meiner E-Mail Adresse dstender@lhsystemsas.de erreichen. Ich lasse Ihnen dann gerne die komplette Datenbank zukommen. Für weitere Fragen stehe ich Ihnen ebenfalls gerne zur Verfügung.