|
Letzte Änderung 24.02.2010
Wichtigste Methoden der Virtuellen Tabelle
Funktion
|
Erklärung
|
Leere Zeile anhängen
|
addRow( ) | XDEV NLS: fügeZeileHinzu( )
Hängt eine leere Zeile an die Virtuelle Tabelle an.
|
Daten aus Formular anhängen
|
addRow(XdevFormular formular, Boolean synchronizeDB) | XDEV NLS: fügeZeileHinzu(XdevFormular formular, Wahrheitswert synchronisiereDB)
Liest alle Formular-Komponenten eines Formulars aus und hängt den Datensatz als neue Zeile an die Virtuelle Tabelle an. Wenn synchronizeDB gleich true ist, wird der neue Datensatz auch an die dazugehörige Datenbank-Tabelle angehängt. Damit die Daten übertragen werden können, müssen die Spaltennamen bei den Formular-Komponenten jeweils bei der Eigenschaft Datenfeld hinterlegt werden.
|
Alle Daten löschen
|
clear( ) | XDEV NLS: löscheAlles( )
Löscht alle Daten aus der Virtuellen Tabelle und setzt den Cursor vor die erste Zeile.
|
Daten in ein Formular übertragen
|
fillFormular(XdevFormular formular, Int row) | XDEV NLS: fülleFormlular(XdevFormular formular, Ganzzahl zeile)
Überträgt einen Datensatz aus der Virtuellen Tabelle in ein Formular. Bei den Formular-Komponenten muss bei der Eigenschaft Datenfeld jeweils das dazugehörige Datenfeld hinterlegt werden, damit die Daten übertragen werden können.
Durch den Index row | XDEV NLS: zeile legen Sie fest, welcher Datensatz übertragen werden soll.
Falls der Index row | XDEV NLS: zeile bereits bekannt ist, wird dieser mit einer Variable übergeben. In der Praxis muss der Index row | XDEV NLS: zeile jedoch erst von einer anderen Komponente abgefragt werden, z.B. von einer Table, einem DataGrid oder DataControl. Die entsprechende get | XDEV NLS: hole Methode dafür finden Sie bei der jeweiligen Komponente, z.B. getSelectedRow( ) | XDEV NLS: holeSelektierteZeile( ) bei der Table und beim DataGrid sowie getIndex( ) | XDEV NLS: holeIndex( ) beim DataControl.
Beispiele:
#Modelle.fillFormular(Formular, Table.getSelectedRow());
|
#Modelle.fillFormular(Formular, Table.getSelectedRow())
|
#Modelle\fülleFormular(Formular, Table\holeSelektierteZeile())
|
Die Funktion füllt ein Formular mit einem Datensatz, der in einer Table angeklickt wurde und somit selektiert ist. Mit Hilfe von getSelectedRow() wird der Index des selektierten Datensatzes ermittelt. Mit Formular wird das zu füllende Formular übergeben, aus der der Datensatz ausgelesen werden soll.
#Modelle.fillFormular(Formular, DataControl.getIndex());
|
#Modelle.fillFormular(Formular, DataControl.getIndex())
|
#Modelle\fülleFormular(Formular, DataControl\holeIndex())
|
Die Funktion füllt ein Formular mit einem Datensatz aus der Virtuellen Tabelle #Modelle, der mit einem DataControl angesteuert wurde. Mit Hilfe von getIndex( ) | XDEV NLS: holeIndex( ) wird der Index des aktuellen Datensatzes ermittelt.
|
Kopie von Virtueller Tabelle
|
copy(Boolean withData) VirtualTable | XDEV NLS: kopiere(Wahrheitswert mitDaten) Virtuelle Tabelle
Erzeugt eine Kopie der aktuellen Virtuellen Tabelle und gibt diese als VirtualTable-Objekt zurück. Wenn true | XDEV NLS: WAHR übergeben wird, werden auch die Datensätze mit kopiert, ansonsten nur die leere Virtuelle Tabelle.
VirtualTable MODELLE_KOPIE = #MODELLE.copy(true);
|
VirtualTable MODELLE_KOPIE = #MODELLE.copy(true)
|
VirtuelleTabelle MODELLE_KOPIE = #MODELLE\kopiere(WAHR)
|
|
Zeilen zählen
|
getRowCont( ) | XDEV NLS: anzahlZeilen( )
Gibt die Anzahl der Zeilen bzw. die Anzahl der Datensätze in der Virtuellen Tabelle zurück.
Diese Methode wird häufig für den Zähler einer Schleife benötigt, mit der bestimmte Werte aus den Datensätzen der Virtuellen Tabelle ausgelesen werden sollen.
Int anzahlZeilen = #MODELLE.getRowCount();
for (Int i; i< anzahlZeilen; i = i+1)
{
}
|
Int anzahlZeilen = #MODELLE.getRowCount()
XFor Int i, i< anzahlZeilen, i = i+1
Next
|
Ganzzahl anzahlZeilen = #Modelle\anzahlZeilen()
Zählerschleife (Ganzzahl i | i< anzahlZeilen | i = i+1)
|
|
Wert aus Zelle auslesen
|
getValueAt(Int row, String col) | XDEV NLS: holeWert(Ganzzahl zeile, Zeichenkette spalte)
Liest den Wert aus einer Zelle der Virtuellen Tabelle aus. Die Position der Zelle wird über den Spaltennamen col | XDEV NLS: spalte bestimmt, der als Zeichenkette angegeben werden muss, i.V.m. dem Zeilen-Index row | XDEV NLS: zeile, bei dem es sich um eine Ganzzahl handelt. Der Spaltenname kann auch als als VT-Konstante anstatt einer statischen Zeichenkette angegeben werden, z.B. #MODELLE.MODELL.
|
Wert in Zelle schreiben
|
setValueAt(Int row, String col, Mixed value) | XDEV NLS: setzeWert(Ganzzahl zeile, Zeichenkette spalte, Verschiedenes wert)
Schreibt einen Wert die Zelle der Virtuelle Tabelle in der Zeile row | XDEV NLS: zeile und der Spalte col | XDEV NLS: spalte. Der Wert row | XDEV NLS: zeile kann von einem beliebigen Datentyp sein.
|
Virtuelle Tabelle sortieren
|
sortByCol(String colName, Boolean ascending) | XDEV NLS: sortiereNachSpalte(Zeichenkette spaltenName, Wahrheitswert aufsteigend)
Sortiert die Virtuelle Tabelle nach der Spalte colName | XDEV NLS: spaltenName aufsteigend, wenn true | XDEV NLS: WAHR übergeben wird, ansonsten absteigend. Alternativ können Sie die Sortierung von der Datenbank vornehmen lassen, indem Sie das zu sortierende Datenfeld im SQL-Assistenten unter Schritt 3: Filter festlegen bei ORDER BY | XDEV NLS: Sortiere nach Spalte(n) angeben.
|
Geänderte Daten in Datenbank übertragen
|
synchronizeChangedRows( ) | XDEV NLS: synchronisiereGeänderteZeilen( )
Synchronisiert alle geänderten Daten in der Virtuellen Tabelle mit der dazugehörigen Datenbank-Tabelle. Neue Datensätze werden in der Datenbank-Tabelle per Insert eingefügt.
Speichert alle geänderten oder neuen Daten in eine identische Datenbank-Tabelle. Die Virtuelle Tabelle muss exakt der Datenbank-Tabelle entsprechen, u.a. gleicher Tabellen-Name sowie Anzahl und Namen der Datenfelder. Die Synchronisierung findet jedoch nur in 1 Richtung statt, und zwar von der Virtuellen Tabelle zur Datenbank-Tabelle. Die Methode schreibt dabei nur die Daten in die Datenbank-Tabelle, die sich in der Virtuellen Tabelle geändert haben (Update) oder neu hinzu gekommen sind (Insert). Die Virtuelle Tabelle bleibt dagegen unverändert.
Tipp: Mit der Anweisung XDEV WriteDB | XDEV NLS: XDEV DatenbankSchreiben können Sie Daten einer Virtuellen Tabelle in einer beliebigen Datenbank-Tabelle speichern.
|
|
Basiswissen: Virtuelle Tabellen., Methoden.
|