BeeBase

Programmable relational database
with graphical user interface Support This Project
This page is also available in English Français

Handbuch

Die folgende Dokumentation ist Bestandteil der BeeBase-Distribution und gibt es auch als PDF.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

5. Grundlagen

Bevor man beginnt, eigene Datenbanken zu entwickeln und Daten in ihnen einzugeben, sollte man über die Grundlagen Bescheid wissen, auf die BeeBase aufbaut.


5.1 Projekte

Ein BeeBase-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.

BeeBase kann mehrere Projekte gleichzeitig handhaben. Daher ist es nicht notwendig, BeeBase nochmal aufzurufen, wenn nur ein weiteres Projekt geladen werden soll.

Weiterhin können mehrere BeeBase-Instanzen auf das gleiche Projekt zugreifen. Mehrere BeeBase-Instanzen können das Projekt lesen, aber nur eine Instanz kann Änderungen vornehmen. Das funktioniert auch über mehrere Rechner auf einem Netzwerk, sofern das Projekt auf einem Netzwerklaufwerk liegt.


5.2 Tabellen

BeeBase 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

Es existiert eine besondere Art von Tabelle, die nur genau einen Datensatz halten kann. Diese Art von Tabelle ist manchmal nützlich, wenn eine Datenbank gesteuert werden soll, z.B. können Knöpfe zum Ausführen von diversen Aktionen oder Nur-Lesefelder zur Darstellung von projektabhängiger Information in die Tabelle eingesetzt werden. Angenommen, es gibt beispielsweise eine Finanzdatenbank, in der Ein- und Ausgaben gespeichert werden. Eine Tabelle mit genau einem Datensatz könnte ein Nur-Lesefeld vom Typ Fließkommazahl beinhalten, in dem der aktuelle Gewinn bzw. Verlust angezeigt wird.

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 BeeBase-Programms verwendet wird (genannt Programm-Datensatzzeiger).

Man kann unbegrenzt viele Tabellen in einem BeeBase-Projekt anlegen. Tabellen können hinzugefügt, umbenannt und gelöscht werden.


5.3 Datensätze

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 BeeBase dennoch für Datensatzzahlen von 10000 und mehr verwendbar.


5.4 Felder

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.


5.5 Feldtypen

Für Felder sind folgende Typen verfügbar:

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.


5.5.1 Zeichenketten

Zeichenketten können eine einzelne Zeile Text speichern (0 bis 999 Zeichen). 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.


5.5.2 Ganzzahlfelder

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.


5.5.3 Fließkommazahlfelder

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.


5.5.4 Boolesche Felder

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.


5.5.5 Auswahlfelder

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.


5.5.6 Datumsfelder

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.


5.5.7 Zeitfelder

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.


5.5.8 Mehrzeilige Textfelder

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.


5.5.9 Beziehungsfelder

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.


5.5.10 Virtuelles Feld

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.


5.5.11 Knöpfe

Knöpfe sind genau genommen keine echten Feldtypen, da sie keine Daten speichern oder darstellen. Sie werden nur zum Auslösen von BeeBase-Programmen verwendet.


5.6 Tabelle der Feldtypen

Die folgende Tabelle zeigt alle verfügbaren Feldtypen auf:

 

Typ            Beschreibung                                    NIL zulässig?
----------------------------------------------------------------------------
Zeichenkette   Für Zeichenketten (0 bis 999 Zeichen).          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
               (-2147483648 bis 2147483647).

Fließkommazahl Zum Speichern von reellen Zahlen                Ja
               (-3.59e308 bis +3.59e308).

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
               BeeBase-Programm

Knopf          Zum Auslösen einer Programmfunktion             Nein (k.A.)


5.7 Beziehungen

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.7.1 Eins-zu-Eins-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 BeeBase erreichen, dass solche Fälle sofort erkannt und behandelt werden können.


5.7.2 Eins-zu-Mehrfach-Beziehungen

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.


5.7.3 Mehrfach-zu-Mehrfach-Beziehungen

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 BeeBase 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

Aus diesen Tabellen kann z.B. herausgelesen werden, dass Mel Gibson in den Filmen Tequila Sunrise, Mad Max und Braveheart mitgewirkt hat, oder dass im Film Batman die Schauspieler Michael Keaton, Jack Nicholson und Kim Basinger mitgespielt haben.


5.8 Benutzerschnittstelle

BeeBase 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.8.1 Fenster

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.


5.8.2 Masken

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.


5.8.3 Panels

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.

Ein Panel ist Teil einer Tabellenmaske und kann, falls gewünscht, weggelassen werden. Wird ein Panel für eine Maske eingerichtet, dann wird zusätzlicher ein Rahmen um die gesamte Maske gezeichnet.


5.8.4 Feldobjekte

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.


5.8.5 Textobjekte

Textobjekte werden verwendet, um die verschiedenen Feldelemente einer Datensatzmaske zu beschreiben oder einfach nur zum Anzeigen von festen Text.


5.8.6 Bilder

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).


5.8.7 Zwischenraumobjekte

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.


5.8.8 Gruppen

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.


5.8.9 Gewichtungsobjekte

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.


5.8.10 Karteikarten-Gruppen

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] [ ? ]

Dieses Dokument wurde am 30. September 2024 mit texi2html generiert.