Table

Previous  Next

 

 

 

01.11.2009

Table

 

 

clip0370

 

 

Die Komponente Table ist eine leistungsfähige Tabellen-Komponente, mit der sich Datensätze tabellarisch ausgeben, markieren und editieren lassen. Nach dem Einfügen erscheint die Table zunächst nur als Dummy, da die Komponente noch keinerlei Informationen über Tabellenstruktur und Daten besitzt. Erst wenn die Komponente zur Laufzeit mit Datensätzen gefüllt wird und dabei die Anzahl der Spalten, Breite sowie deren Bezeichnungen bekannt werden, kann die Table gezeichnet werden.

 

Gefüllt wird eine Table immer mit den Daten einer Virtuellen Tabelle mit Hilfe der Methode hmtoggle_plus1 fillFrom ( VirtualTable vt ) | XDEV NLS: fülleAus ( VirtuelleTabelle vt ). Auch die Spaltennamen werden von der Virtuellen Tabelle übernommen, welche sich jedoch im Daten-Editor speziell für die Ausgabe  formatieren und dabei umbenennen lassen. Beim sog. Füllen werden jedoch keineswegs Datensätze von der Virtuellen Tabelle zur Table übertragen wie man vermuten könnte. Die Table hat keinen eigenen Datenspeicher. Table und Virtuelle Tabelle werden lediglich miteinander verknüpft. Die Virtuelle Tabelle wird dadurch zum Datenspeicher (Datenschicht bzw. Datenmodel) für die bis dahin noch unvollständige und deshalb noch nicht funktionsfähige Komponente Table (Model-View-Control). Die von einer Table angezeigten Daten sind somit immer die Daten einer Virtuellen Tabelle.

 

Die Komponente Table kann jedoch weit aus mehr als nur Daten anzeigen. Die interne Steuerungseinheit (Controller) bietet bereits einen respektablen Umfang an Standard-Funktionen. So ist u.a. auf- und absteigendes Sortieren, das Vergrößern und Verkleinern von Spalten per Drag&Drop, das Selektieren von Zeilen sowie das Editieren einzelner Daten möglich. Dabei erfolgt sogar eine automatische Typen-Prüfung, welche ausschließlich die Eingabe plausibler Werte zulässt und dadurch spätere Datenbankfehler von vorn herein unterbindet. So lässt sich in ein Datumsfeld beispielsweise keine Zeichenkette eingeben. Beim Editieren werden immer die Daten in der Virtuellen Tabelle geändert. Umgekehrt, wenn Daten in der Virtuellen Tabelle nicht durch den Anwender sondern durch eine Funktion verändert werden, z.B. Hinzufügen oder Löschen von Zeilen, dann wird diese Änderung umgehend in der Table auf dem Bildschirm angezeigt. Entsprechende Aktualisierungen (Refresh) laufen bei der Table vollautomatisch im Hintergrund ab, sodass Sie sich darum nicht kümmern müssen.

 

Die Verbindung zwischen einer Table und einer Virtuellen Tabelle wird nur dann aufgelöst, wenn die Table mit einer anderen Virtuellen Tabelle gefüllt wird und die Table dadurch eine anderes Daten-Model erhält.

 

 

 

clip0369

Die Table zeigt immer eine Virtuelle Tabelle an. Die Steuerungs-Einheit ermöglicht Benutzer-Eingaben, sodass sich Daten selektieren und auch ändern lassen. Die Änderungen erfolgen immer in der Virtuellen Tabelle in der sich die Daten befinden.

 

 

 

clip0371

clip0372

Die Steuerungseinheit der Table-Komponente ermöglicht u.a. auf- und absteigendes Sortieren der Daten.

Die Sortierung der Datensätze erfolgt nur in der Table, nicht in der Virtuellen Tabelle.

 

clip0373

Daten können in der Table editiert werden. Dabei erfolgt automatisch eine Typen-Prüfung, die nur plausible Werte zulässt. Diese Eingabe wird ignoriert, da das Datenfeld NEUPREIS vom Typ Int (Ganzzahl) ist.

 

 

Spezielle Eigenschaften der Table:

 

Eigenschaft

Erklärung

DataControl

Die Anzahl sichtbarer Anzeige der Datensätze kann über ein DataControl gesteuert werden. Die DataControl-Komponente wird hier mit der Tabel verknüpft. Dazu müssen Sie das DataControl im Entwurf anklicken.

 

clip0374

Ungerade Zeilen,

Gerade Zeilen

Über diese Einstellung lässt sich ein Farbwechsel bei den Zeilen der Table festlegen.

 

 

Hinweis: Bei alphabetischen Sortierung werden die Datensätze in der Table nur optisch sortiert. Die Reihenfolge der Datensätze und deren Index in der Virtuellen Tabelle bleibt jedoch unverändert. Um die Datensätze auch in der Virtuellen Tabelle alphabetisch zu sortieren, müssen Sie eine eigene Funktion schreiben.

 

Tipp: Sie können der Table auch im Entwurf eine Virtuelle Tabelle zuweisen. Klicken Sie dazu die Table mit der rechten Maustaste an und wählen Sie im Kontextmenü Daten aus einer Virtuellen Tabelle übernehmen und wählen Sie im folgenden Dialog die entsprechende Virtuelle Tabelle aus. Datensätze werden jedoch nur angezeigt, wenn Sie im Daten-Editor für die entsprechende Virtuelle Tabelle statische Datensätze angelegt haben. Achtung, die hier hinterlegten Datensätze erscheinen auch später beim Programmstart als statische Daten in der Virtuelle Tabelle.

 

XDEV-Intern

Durch Klicken der Spaltennamen einer Table werden die Daten auf- bzw. absteigend sortiert. Dies ist eine Sortierfunktion, welche bereits die Swing-Basis-Komponente JTable bietet. Die Virtuelle Tabelle bleibt davon völlig unberührt. Die Reihenfolge der Datensätze in der Virtuellen Tabelle und somit der Index der Zeilen bleiben dabei unverändert. Um die Datensätze auch in der Virtuellen Tabelle alphabetisch zu sortieren, müssen Sie eine eigene Funktion schreiben.