[ << ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
Bevor man beginnt, eigene Datenbanken zu entwickeln und Daten in ihnen einzugeben, sollte man über die Grundlagen Bescheid wissen, auf die MUIbase aufbaut.
5.1 Projekte MUIbase-Projekte. 5.2 Tabellen Grundlegende Datenverwaltung. 5.3 Datensätze Eine Zeile einer Tabelle. 5.4 Felder Eine Spalte einer Tabelle. 5.5 Feldtypen vorhandene Typen für Felder. 5.6 Tabelle der Feldtypen Liste der Feldtypen. 5.7 Speicherverbrauch Wieviel Speicher jeder Typ benötigt. 5.8 Beziehungen Tabellen verbinden. 5.9 Benutzerschnittstelle Elemente für das Layout.
Ein MUIbase-Projekt enthält alle relevanten Informationen, die zum Verwalten von Daten benötigt werden. Dies schließt die Benutzerschnittstelle, die eingegebenen Daten und die Programme des Projekts ein.
Ein Projekt kann von einer Platte geladen, auf ihr gespeichert und von ihr gelöscht werden. Jede Änderung, die am Projekt durchgeführt wird, wird nur im Speicher durchgeführt. Jederzeit kann zum zuletzt gespeicherten Status des Projekts zurückgekehrt werden, indem es neu geladen wird.
MUIbase kann mehrere Projekte gleichzeitig handhaben. Daher ist es nicht notwendig, MUIbase nochmal aufzurufen, wenn nur ein weiteres Projekt geladen werden soll.
MUIbase verwaltet Daten in Tabellen. Eine Tabelle ist in Zeilen und Spalten angeordnet, wobei Zeilen Datensätze und Spalten Felder heißen.
Folgendes Beispiel zeigt eine Tabelle, wie eine Menge von Adressen in einer Tabelle angeordnet sind:
Name | Street | City ------------------|---------------------|------------------------ Steffen Gutmann | Wiesentalstr. 30 | 73312 Geislingen/Eybach Charles Saltzman | University of Iowa | Iowa City 52242 Nicola Müller | 21W. 59th Street | Westmont, Illinois 60559 |
Jede Tabelle hat zwei Datensatzzeiger: ein Zeiger, der auf den Datensatz zeigt, der gerade über die Benutzerschnittstelle angezeigt wird (genannt GUI-Datensatzzeiger) und ein Zeiger, der auf den Datensatz zeigt, der beim Ausführen eines MUIbase-Programms verwendet wird (genannt Programm-Datensatzzeiger).
Man kann unbegrenzt viele Tabellen in einem MUIbase-Projekt anlegen. Tabellen können hinzugefügt, umbenannt und gelöscht werden.
Ein Datensatz ist eine Zeile einer Tabelle. Sie trägt sämtliche Information einer Menge, d.h. in einer Tabelle, die Adressen verwaltet, hält sie eine Adresse.
Jeder Datensatz besitzt eine Nummer, das ihre Position in der Tabelle widerspiegelt. Diese Nummer kann sich ändern, wenn Datensätze hinzugefügt oder gelöscht werden.
Für jede Tabelle existiert ein Datensatz, der Vorgabedatensatz genannt wird, der die Vorgabewerte zum Anlegen neuer Datensätze beinhaltet. Dieser Vorgabedatensatz hat immer die Datensatznummer 0.
Datensätze können hinzugefügt, verändert und von einer Tabelle gelöscht werden. Die Datensätze werden nicht notwendigerweise immer im Speicher gehalten sondern werden von Platte geladen oder auf ihr gespeichert, wenn es nötig sein sollte. Es gibt zwei Beschränkungen für die maximale Anzahl von Datensätzen einer Tabelle. Die eine basiert darauf, dass die Datensatznummer ein 32Bit Integerwert ist, was die Anzahl der Datensätze auf (theoretisch) 4294967295 begrenzt. Die andere und größere Einschränkung besteht darin, dass für jeden Datensatz ein kleiner Datensatzkopf im Speicher gehalten werden muss. Diese Einschränkungen machen MUIbase dennoch für Datensatzzahlen von 10000 und mehr verwendbar.
Ein Feld legt eine Spalte einer Tabelle fest. Es legt den Typ und die Erscheinung der betreffenden Spalte fest.
Felder können hinzugefügt, umbenannt und von einer Tabelle gelöscht werden. Es gibt hier keine Obergrenze für die Anzahl der Felder pro Tabelle.
Für jedes Feld muss ein Typ festgelegt werden, der den Inhalt des Feldes einschränkt. Eine Liste aller Feldtypen ist im nächsten Abschnitt zu finden.
Für Felder sind folgende Typen verfügbar:
5.5.1 Zeichenkette Jede einfache Zeile Text. Kann auch zum Speichern von Zeichensatznamen, Dateinamen und externen Bildern verwendet werden 5.5.2 Ganzzahl ganze Zahlen. 5.5.3 Fließkommazahl reelle Zahlen. 5.5.4 Boolesch Boolescher Wert. 5.5.5 Auswahl Eins aus mehreren Elementen. 5.5.6 Datum Datumsangaben. 5.5.7 Zeit Zeitangaben. 5.5.8 Mehrzeiliger Text Mehrzeiliger Text. 5.5.9 Beziehung Beziehung (Referenz) zu einem anderen Datensatz. 5.5.10 Virtuell Werte beiläufig berechnen. 5.5.11 Knopf Zum Auslösen von MUIbase-Programmen.
Einige der Felder unterstützen einen besonderen Wert NIL. Dieser Wert stellt einen undefinierten Wert dar, z.B. bei einem Datum für ein unbekanntes Datum. Der Wert NIL entspricht dem Wert NULL in anderen Datenbanksystemen.
Anzumerken ist, dass der Typ eines Feldes nachträglich nicht mehr geändert werden kann, wenn er einmal gesetzt worden ist.
Zeichenketten können eine einzelne Zeile Text speichern. Sie sind der am meisten verwendete Feldtyp in einem Datenbankenprojekt. Zum Beispiel könnte eine Adressdatenbank den Namen, die Straße und den Ort einer Person jeweils in einem Zeichenkettenfeld speichern.
Für ein Zeichenkettenfeld muss die maximale Länge in Zeichen festgelegt werden, die in einer Zeichenkette zulässig sind. Diese Zahl bezieht sich nicht auf den benötigten Platz im Speicher oder auf Platte, der durch die Zeichenkette beansprucht wird, da nur der aktuelle Zeichenketteninhalt gespeichert wird (andere Datenbanken nennen dieses Feature komprimierte Zeichenketten). Wenn nötig kann die Nummer nach der Erstellung des Zeichenkettenfeldes nachträglich geändert werden.
Zeichenkettenfelder können auch verwendet werden, um Zeichensatz- und Dateinamen zu speichern. Bei Dateinamen können externe Anzeigeprogramme gestartet werden, um den Dateiinhalt anzuzeigen. Des weiteren erlaubt eine eingebaute Bilderklasse die Darstellung eines Bildes aus einer Datei.
Zeichenkettenfelder unterstützen nicht den Wert NIL.
Ganzzahlfelder speichern ganze Zahlen im Bereich von -2147483648 bis 2147483647. Sie werden meistens verwendet, um Mengenangaben wie z.B. die Anzahl der Kinder pro Person oder die Anzahl der Lieder pro CD zu speichern.
Ganzzahlfelder unterstützen den Wert NIL, der für eine undefinierte Ganzzahl steht.
Fließkommazahlen speichern Werte im Bereich von -3.59e308 bis +3.59e308.
Sie werden für das Speichern von Zahlen jeder Art verwendet, wie z.B. die Beträge in einem Projekt für Einkommen/Ausgaben.
Für jedes Fließkommazahlfeld lässt sich die Anzahl der Nachkommastellen festlegen, aber intern wird dennoch mit der vollständigen Präzision gearbeitet.
Fließkommazahlfelder unterstützen den Wert NIL, der für eine undefinierte Fließkommazahl steht.
Boolesche Felder speichern ein Bit Information. Sie können für das Speichern von Werten wie ja/nein oder wahr/falsch verwendet werden, z.B. in einem Buchhaltungsprojekt könnte ein boolesches Feld die Information `hat bezahlt?' vermerken.
Boolesche Felder verwenden TRUE (=wahr) und NIL als boolesche Werte. NIL steht in diesem Fall für falsch.
Auswahlfelder speichern ein Element aus einer Liste von Elementen. Zum Beispiel kann das Feld in einer Adressdatenbank zum Speichern von Landesnamen wie `USA', `Kanada', `Deutschland' oder `andere' verwendet werden.
Ein Auswahlfeld speichert im Datensatz nicht die gesamte Elementzeichenkette, sondern nur die Elementnummer (Index). Die Anzahl der Elemente und die Elemente selbst können nach dem Erstellen nachträglich geändert werden. Jedoch werden die vorhandenen Datensätze nicht auf die Änderungen an einem Auswahlfeld angepasst, um die neue Situation zu widerspiegeln.
Auswahlfelder unterstützen nicht den Wert NIL.
Datumsfelder speichern Kalenderdaten. Zum Beispiel kann ein Datumsfeld zum Speichern von Geburtstagen verwendet werden.
Das Format zum Eingeben von Datumswerten ist eines aus `TT.MM.JJJJ', `MM/TT/JJJJ' oder `JJJJ-MM-TT', wobei `TT' für den Tag, `MM' für den Monat und `JJJJ' für das Jahr steht.
Datumsfelder unterstützen den Wert NIL, der für ein undefiniertes Datum steht.
Zeitfelder speichern eine Uhrzeit oder einen Zeitraum. Zum Beispiel kann ein Zeitfeld verwendet werden, um die Spielzeiten von Musikstücken einer CD zu speichern.
Das Format zum Eingeben und Darstellen von Zeitangaben kann auf `HH:MM:SS', `MM:SS' oder `HH:MM' festgelegt werden, wobei `HH' für die Stunden, `MM' für die Minuten und `SS' für die Sekunden stehen. Intern wird ein Zeitwert als die Anzahl Sekunden seit 0 Uhr gespeichert. Zeitwerte größer als 23:59:59 sind bis zum maximalen Wert von 596523:14:07 möglich, aber negative Werte werden nicht unterstützt.
Zeitfelder unterstützen den Wert NIL, der für eine undefinierte Zeit steht.
Mehrzeilige Textfelder speichern mehrzeilige Texte jeder Größe. Die Textgröße wird dynamisch verwaltet, was bedeutet, dass nur soviel Speicher benötigt wird, wie der Text groß ist. In einem Projekt, das Filme verwaltet, kann ein mehrzeiliges Textfeld verwendet werden, um Kurzbeschreibungen zum Film aufzunehmen.
Mehrzeilige Textfelder unterstützen nicht den Wert NIL.
Beziehungsfelder sind ein besonderer Feldtyp, der gewöhnlich nicht in anderen Datenbanksystemen zu finden ist. Beziehungsfelder speichern einen Zeiger auf einen anderen Datensatz. Der Datensatz, auf den verwiesen wird, kann in der selben oder in jeder anderen Tabelle liegen, zu der die Beziehung gehört.
Zum Beispiel können in einem Stammbaumprojekt zwei Beziehungsfelder verwendet werden, um Zeiger auf den Vater und die Mutter zu speichern. In einer CD-Verwaltung mit Musiktiteln kann ein Beziehungsfeld in einer Tabelle, die die Musiktitel beinhaltet, verwendet werden, um auf die Datensätze der entsprechenden CDs zu verweisen.
Zur Darstellung eines Beziehungsfeldes können ein oder mehrere Felder des Bezugsdatensatzes angegeben werden. Eingaben in ein Beziehungsfeld können durch Auswählen eines Datensatzes aus einer Liste von Datensätzen erfolgen.
Beziehungsfelder unterstützen den Wert NIL. Hierbei steht er für einen Zeiger auf den Vorgabedatensatz der Bezugstabelle.
Virtuelle Felder sind ein besonderer Feldtyp, die keine Information in der Datenbank speichern, sondern sie nur beiläufig ermitteln, wenn es notwendig ist.
Zum Beispiel kann in einem Buchhaltungsprojekt Werte einschließlich Steuern ermittelt werden, wenn in der Datenbank nur Werte ohne Steuern gespeichert werden. Jedes mal, wenn der Wert des virtuellen Feldes benötigt wird, wie z.B. beim Darstellen, wird er aus dem entsprechenden Wert ohne Steuern berechnet.
Zum Darstellen von virtuellen Feldern existieren drei Arten: Boolesch, Zeichenkette und Liste. Diese drei Arten erlauben die Darstellung des virtuellen Feldes als Wahr/Falsch-Wert, als eine einzeilige Zeichenkette einschließlich Zahlen, Daten und Zeiten, und als eine Liste aus mehreren einzelnen Zeilen, z.B. zum Auflisten aller Titel einer CD.
Virtuelle Felder unterstützen den Wert NIL, der für Falsch (bei Boolesch), undefiniert (bei Zeichenkette) oder leer (bei Liste) steht.
Knöpfe sind genau genommen keine echten Feldtypen, da sie keine Daten speichern oder darstellen. Sie werden nur zum Auslösen von MUIbase-Programmen verwendet.
Die folgende Tabelle zeigt alle verfügbaren Feldtypen auf:
Typ Beschreibung NIL zulässig? ---------------------------------------------------------------------------- Zeichenkette Für Zeichenketten der Länge 1..999. Nein Eine Zeichenkette kann auch zum Speichern von Dateinamen, Zeichensatznamen und einer aus mehreren Zeichenketten verwendet werden. Bei Dateinamen kann ein Feld hinzugefügt werden, in dem die Datei als Bild angezeigt wird. Ganzzahl Zum Speichern von Ganzzahlen Ja Fließkommazahl Zum Speichern von reellen Zahlen Ja Boolesch TRUE oder NIL Ja (NIL = falsch) Auswahl Eine Nummer aus n Nummern, die durch Nein Auswahltexte repräsentiert werden. Datum Zum Speichern eines Datum Ja (1.1.0000 - 31.12.9999) Zeit Zum Speichern einer Zeit Ja (00:00:00 - 596523:14:07) Mehrzeiliger Mehrzeilige Texte von unbegrenzter Länge Nein Text Beziehung Zum Speichern einer Beziehung zu einem Ja (NIL bedeutet Datensatz einer anderen Tabelle Vorgabedatensatz) Virtuell Zum Darstellen von Ergebnissen aus einem Ja MUIbase-Programm Knopf Zum Auslösen einer Programmfunktion Nein (k.A.) |
Jeder Feldtyp benötigt eine bestimmte Menge Speicher, um einen Wert in einem Datensatz zu speichern. Alle Typen außer virtuell und Knopf haben gemeinsam, dass sie einen Kopf aus 2 Bytes benötigen, der interne Information speichert. Zusätzlich wird typenabhängiger Speicher benötigt, der zum Speichern des momentanen Wertes dient. Die folgende Tabelle zeigt auf, wieviel Speicher einschließlich des möglichen 2 Bytes-Kopfes ein Wert zu gegebenem Typ an Speicher im RAM und auf Platte benötigt.
Typ Speicherplatz Plattenplatz Zeichenkette 2 + 4 + Länge +1 2 + Länge + 1 Ganzzahl 2 + 4 2 + 4 Fließkommazahl 2 + 8 2 + 8 Boolesch 2 + 0 2 + 0 Auswahl 2 + 2 2 + 2 Datum 2 + 4 2 + 4 Zeit 2 + 4 2 + 4 Mehrzeiliger Text 2 + 4 + Länge +1 2 + Länge + 1 Beziehung 2 + 4 2 + 4 Virtuell 0 0 Knopf 0 0 |
Bis jetzt ist bekannt, wie Information in Tabellen mit Datensätzen und Feldern angeordnet werden, aber es sollten auch Beziehungen zwischen Tabellen hergestellt werden können.
Zum Beispiel würde eine Datenbank für CDs zwei Tabellen enthalten, eine für die CDs und eine für die Musiktitel der CDs. Natürlich können alle Musiktitel innerhalb der CD-Tabelle gespeichert werden, aber dadurch ist die Anzahl der Musiktitel pro CD auf eine feste Anzahl beschränkt.
Nun wird eine Verbindung zwischen den beiden Tabellen benötigt, um für jeden Musiktitel die entsprechende CD zuzuweisen. Dies wird Beziehung zwischen beiden Tabellen genannt. Normalerweise wird dafür ein Beziehungsfeld verwendet, um eine solche Beziehung herzustellen.
Durch das Einrichten eines Beziehungsfeldes in einer Tabelle wird automatisch eine Beziehung zwischen der Tabelle, die das Feld beinhaltet, und der Tabelle hergestellt, zu der sie verweist.
Folgende Beziehungsklassen werden unterschieden:
5.8.1 Eins-zu-Eins Beziehungen einfache Beziehungen. 5.8.2 Eins-zu-Mehrfach Beziehungen die am meisten verwendeten. 5.8.3 Mehrfach-zu-Mehrfach Beziehungen Komplexe Beziehungen.
Eins-zu-Eins-Beziehungen sind ganz einfache Beziehungen, bei denen jeder Datensatz genau einen oder keinen Partner in der anderen oder selben Tabelle besitzt.
In einer Datenbank, die beispielsweise Lieblingsschauspieler verwaltet, könnte ein Beziehungsfeld `verheiratet mit' eingerichtet werden, das anzeigt, mit welcher Person der/die Schauspieler/in verheiratet ist. Ein/e Schauspieler/in, die momentan nicht verheiratet ist, würde dann den Wert NIL im Beziehungsfeld haben.
Dies verhindert natürlich nicht, dass der Benutzer die Beziehungen über `verheiratet mit' von verschiedenen Schauspieler/innen auf die gleiche Person setzt. Es lässt sich jedoch über die Programmierung von MUIbase erreichen, dass solche Fälle sofort erkannt und behandelt werden können.
Eins-zu-Mehrfach-Beziehungen sind nützlich, um mehrere Datensätze zu einem Datensatz in einer anderen oder der selben Tabelle zu verbinden.
In einem Projekt, das z.B. Bankkonten verwaltet, könnte eine Tabelle alle Bankkonten und eine Tabelle alle Überweisungen enthalten. Nun ist es sicher sinnvoll zu wissen, welche Überweisung auf welches Konto durchgeführt werden soll. Daher wird ein Beziehungsfeld in der Überweisungstabelle eingerichtet, das auf die Bankkontentabelle verweist.
Eins-zu-Mehrfach-Beziehungen werden am meisten verwendet. Sie können zum Verwalten von hierarchisch angeordneten Strukturen verwendet werden, z.B. CDs mit Musiktiteln, Bankkonten mit Überweisungen, Stammbäume, etc.
Eins-zu-Mehrfach-Beziehungen sind auch Grundlage zum Realisieren von Mehrfach-zu-Mehrfach-Beziehungen, die im nächsten Abschnitt beschrieben werden.
Mehrfach-zu-Mehrfach-Beziehungen werden verwendet, wenn mehrere Datensätze auf eine andere Menge von mehreren Datensätzen verweisen sollen.
Ein Projekt, das Spielfilme und Schauspieler verwaltet, enthält zwei Tabellen, eine für die Filme und eine für die Schauspieler. Es sollen nun für jeden Film die Schauspieler ermittelt werden, die in diesem Film auftreten. In einem ersten Ansatz könnte hierfür ein Beziehungsfeld in der Tabelle der Schauspieler eingerichtet werden, das auf die Film-Tabelle verweist. Dies bedeutet jedoch, dass ein Schauspieler nur in höchstens einem Film auftreten kann, da nur ein Beziehungsfeld in der Tabelle der Schauspieler existiert. Es werden aber eine unbeschränkte Anzahl Beziehungen von der Tabelle der Schauspieler zur Tabelle Filme benötigt.
Um dies zu bewerkstelligen, wird eine neue Tabelle hinzugefügt, die nur zwei Beziehungsfelder beinhaltet: eines, das auf die Tabelle der Schauspieler und eines, das auf die Tabelle Filme verweist. Nun können Beziehungen durch neue Datensätze in dieser Tabelle hinzugefügt werden. Für jede Verbindung von Film-Schauspieler muss dann ein neuer Datensatz erzeugt werden, in dem Film und Schauspieler in den entsprechenden Beziehungsfeldern gesetzt werden.
Wenn nun ermittelt werden soll, in welchen Filmen ein Schauspieler mitgewirkt hat, dann müssen nur alle Datensätze in der neuen Tabelle bestimmt werden, in der auf den gefragten Schauspieler verwiesen wird, und die Film-Datensätze, auf welche die gefundenen Datensätze verweisen, bilden dann die Menge der gesuchten Filme. Eine solche Suche kann von MUIbase automatisch durchgeführt und das Ergebnis in einer Listenansicht angezeigt werden.
Die folgende Tabelle Zeigt ein Beispiel, wie eine Menge von Schauspieler und eine Menge Filme miteinander verbunden werden.
Titel Land ---------------------------- m1: Batman USA m2: Batmans Rückkehr USA m3: Sprachlos USA m4: Tequila Sunrise USA m5: Mad Max Australien m6: Braveheart USA |
Name ------------------- a1: Michael Keaton a2: Jack Nicholson a3: Kim Basinger a4: Danny DeVito a5: Michelle Pfeiffer a6: Geena Davis a7: Christopher Reeve a8: Mel Gibson a9: Kurt Russell a10: Sophie Marceau a11: Patrick McGoohan a12: Catherine McCormack a13: Christopher Walken |
FilmBez SchauspBez -------------------- m1 a1 m1 a2 m1 a3 m2 a1 m2 a4 m2 a5 m2 a13 m3 a1 m3 a6 m3 a7 m4 a8 m4 a5 m4 a9 m5 a8 m6 a8 m6 a10 m6 a11 |
MUIbase verwendet eine grafische Benutzerschnittstelle (GUI), die hierarchisch organisiert ist, um Datensatzinhalte darzustellen und um die Eingabe von Daten zu ermöglichen. Jedes Projekt besitzt sein eigenes Hauptfenster, in dem weitere GUI-Elemente (einschließlich Unterfenster) plaziert werden können. Die GUI-Elemente werden auch Anzeigeelemente genannt.
Eine Tabelle wird in einem eigenen GUI-Element Maske dargestellt. Eine Maske kann nur einen Datensatz zu einem Zeitpunkt darstellen. Dessen Layout und die Felder, die in der Maske eingeschlossen sind, können vom Benutzer verändert werden.
Die folgenden GUI-Elemente sind für die Gestaltung eines Projekt-Layouts verfügbar:
5.9.1 Fenster Haupt- und Unterfenster. 5.9.2 Masken Stellt Tabelle dar. 5.9.3 Panels Steuert eine Tabelle. 5.9.4 Feldobjekte Zeigt Datenfeld eines Datensatzes. 5.9.5 Textobjekte Feste Texte. 5.9.6 Bilder Feste Bilder zur Dekoration. 5.9.7 Zwischenraumobjekte Layout- und Unterteilungselement. 5.9.8 Gruppen Gruppiert GUI-Elemente vertikal und horizontal. 5.9.9 Gewichtungsobjekte Gruppenelemente dynamisch in der Größe verändern. 5.9.10 Karteikarten-Gruppen Seiten mit GUI-Elementen
Fenster können verwendet werden, um Informationen eines Projekts auf mehrere unabhängige Bereiche aufzuteilen.
Jedes Projekt besitzt automatisch sein eigenes Hauptfenster. Falls nötig, wie z.B. wenn der Platz des Hauptfensters nicht ausreicht, können zusätzliche Unterfester erzeugt werden. Unterfenster können wiederum weitere Unterfenster haben.
Für jedes Unterfenster kann im darüberliegenden Fenster ein Fensterknopf eingerichtet werden, welcher zum öffnen des Unterfensters dient. Der Fensterknopf sieht wie ein normaler Textknopf auf, kann aber ein kleines Piktogramm enthalten, um sich von anderen Knöpfen hervorzuheben.
Hauptfenster haben kein übergeordnetes Fenster und haben daher auch keinen Fensterknopf. Schließen eines Hauptfensters bedeutet Schließen des gesamten Projekts.
Ein Fenster kann andere GUI-Element als Kinder haben. Wenn kein Kind zu einem Fenster hinzugefügt wurde, dann wird ein voreingestelltes Bild angezeigt.
Eine Maske wird verwendet, um den Inhalt einer Tabelle darzustellen. Nur ein Datensatz der Tabelle kann zu einem Zeitpunkt angesehen werden.
Die Maske kann ein Panel (siehe nächster Abschnitt) enthalten, mit dem man die Tabelle steuern kann. Andere GUI-Elemente wie Felder oder Textobjekte können in der Maske plaziert werden, um die Datensatzinhalte anzuzeigen.
Masken können nicht in anderen Masken plaziert sein, da dies zu einer Hierarchie von Masken und somit zu einer Hierarchie von Tabellen führen würde. Falls eine Hierarchie von Tabellen eingerichtet werden soll, so sollte dies durch eine Eins-zu-Mehrfach-Beziehung zwischen zwei Tabellen realisiert werden.
Ein Panel ist eine breite, schmale rechteckige Fläche am oberen Rand einer Maske. Ein Panel kann einen Titel, z.B. den Namen der dazugehörigen Tabelle, ein Nummernpaar, das die Datensatznummer und die Gesamtanzahl der Datensätze anzeigt, und einige Knöpfe zum Steuern der Tabelle, z.B. zum Darstellen vom nächsten und vorhergehenden Datensatz, enthalten.
Nur ein Panel kann in einer Maske definiert werden. Wird ein Panel für eine Maske eingerichtet, dann wird zusätzlicher ein Rahmen um die gesamte Maske gezeichnet.
Feldobjekte werden benutzt, um den Inhalt eines Elements aus einem Datensatz darzustellen.
Abhängig vom Typ des Feldes ist das GUI-Element entweder ein Zeichenkettenfeld (Typen Zeichenkette, Ganzzahl, Fließkommazahl, Datum und Zeit), ein Checkmark-Knopf (Typ Boolesch), ein Auswahlknopf oder eine Menge von Radioknöpfen (Typ Auswahl), ein Editorfeld (Typ mehrzeiliger Text), eine Popup-Listenansicht (Typ Beziehung), ein Textfeld, Checkmark-Feld oder eine Listenansicht (Typ virtuell), oder ein Text- bzw. Bildknopf (Typ Knopf). In einigen Fällen kann ein GUI-Element ein einfaches Textfeld sein, wenn das Feldobjekt auf nur lesen gesetzt ist.
Textobjekte werden verwendet, um die verschiedenen Feldelemente einer Datensatzmaske zu beschreiben oder einfach nur zum Anzeigen von festen Text.
Bilder können überall im Fenster angezeigt werden. Ein Bild kann eine Muster, ein einfaches Farbfeld oder ein Bild aus einer externen Datei sein. Die Größe des Bildes kann größenveränderbar oder fest sein.
Das Bild ist fest eingebaut. Sollen Bilder in einer Tabelle gespeichert werden, so kann hierfür ein Zeichenkettenfeld verwendet werden (siehe Zeichenketten).
Zwischenraumobjekte dienen dem Einfügen von Leerraum im Layout eines Fensters oder einer Tabellenmaske. Ein Zwischenraumobjekt kann einen vertikalen (oder horizontalen) Strich zum Abtrennen von anderen GUI-Elemente besitzen.
GUI-Elemente können in horizontalen oder vertikalen Gruppen angeordnet werden. Eine Gruppe plaziert ihre Kinder von links nach rechts (horizontale Gruppe) oder von oben nach unten (vertikale Gruppe).
Eine Gruppe kann seine Kinderobjekte mit einem rechteckigen Rahmen umschließen, einen optionaler Titel oberhalb der Gruppe anzeigen, und Zwischenräume zwischen den Kinderobjekten einfügen.
Gewichtungsobjekte können überall zwischen Kinderobjekten in einem Fenster, einer Maske oder einem Gruppenobjekt eingesetzt werden. Dieses Objekt erlaubt dem Benutzer, die Gewichtungen der anderen Kinderobjekte und somit den Platz der einzelnen Kinder dynamisch zu steuern.
Eine Karteikarten-Gruppe kann benutzt werden, um GUI-Elemente auf verschiedenen Seiten anzuordnen, von denen jeweils nur eine zu einer Zeit sichtbar ist. Dies ist nützlich, wenn die Benutzerschnittstelle zu groß wird und sie nicht über mehrere Fenster verteilen will.
[ << ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |