|
01.11.2009
Aktuellste Daten verwenden
Für dieses Beispiel benötigen Sie die Beispiel-Datenbank FAHRZEUGE und das Projekt fahrzeuge.xdev.
Bei einer Multi-User-Anwendung können die aktuell sichtbaren Daten jederzeit von anderen Anwendern geändert werden, ohne dass die laufende Anwendung diese Veränderung mitbekommt. Um sicher zu gehen, dass tatsächlich ein aktueller Datensatz in das Formular übertragen wird, sollten Sie den selektierten Datensatz nicht aus der Virtuellen Tabelle auslesen, sondern nochmals von der Datenbank abfragen. Dazu benötigen Sie die ID dieses Datensatzes, die Sie mit Hilfe der Methode getValueAt (Int row, String col) | XDEV NLS: holeWert (Ganzzahl zeile, Zeichenkette spalte) aus der selektierten Zeile auslesen können. Bei der Datenbankabfrage müssen Sie diese ID dann im SQL-Assistenten unter Schritt 3: Filter festlegen bei Bedingung als Bedingung angeben, z.B. #FAHRZEUGE.ID = ID.
1
2
3
4
5
6
7
|
ON_SELECTION_CHANGE ( )
{
Int row = this.getSelectedRow();
Int ID = #FAHRZEUGE.getValueAt(row, #FAHRZEUGE.ID);
XDEV Query #FAHRZEUGE << FAHRZEUGE;
Formular.fillFromVT(#FAHRZEUGE, row);
}
|
ON_SELECTION_CHANGE ( )
Der nachfolgende Code wird ausgeführt, wenn sich bei der Komponente die Selektierung ändert. Die Selektierung ändert sich nicht nur, wenn eine Zeile angeklickt wird, sondern auch wenn die Selektierung der Zeile automatisch aufgehoben wird, u.a. wenn die Table den Focus verliert weil eine andere Komponente angeklickt wurde.
Int row = this.getSelectedRow();
Der Index der Selektierten Zeile in der Table wird ermittelt und in der Variable row gespeichert. Der Index beginnt immer bei 0.
Int ID = #FAHRZEUGE.getValueAt(row, #FAHRZEUGE.ID);
Mit Hilfe der ermittelten Zeilennummer row wird die ID des Datensatzes aus der Virtuellen Tabelle #FAHRZEUGE ausgelesen und in der Variable ID gespeichert.
XDEV Query #FAHRZEUGE << FAHRZEUGE;
Es erfolgt eine Abfrage der Datenbank-Tabelle #FAHRZEUGE. Als Bedingung wird die ID des in der Table selektierten Datensatzes angegeben, z.B. #FAHRZEUGE.ID = ID.
Formular.fillFromVT(#FAHRZEUGE, row);
Das Formular wird mit den Daten aus der in row gespeicherten Zeile der Virtuellen Tabelle #FAHRZEUGE gefüllt.
|
|
1
2
3
4
5
|
ON_SELECTION_CHANGE
Int row = this.getSelectedRow()
Int ID = #FAHRZEUGE.getValueAt(row, #FAHRZEUGE.ID)
XDEV Query #FAHRZEUGE << FAHRZEUGE
Formular.fillFromVT(#FAHRZEUGE, row)
|
ON_SELECTION_CHANGE ( )
Der nachfolgende Code wird ausgeführt, wenn sich bei der Komponente die Selektierung ändert. Die Selektierung ändert sich nicht nur, wenn eine Zeile angeklickt wird, sondern auch wenn die Selektierung der Zeile automatisch aufgehoben wird, u.a. wenn die Table den Focus verliert weil eine andere Komponente angeklickt wurde.
Int row = this.getSelectedRow()
Der Index der Selektierten Zeile in der Table wird ermittelt und in der Variable row gespeichert. Der Index beginnt immer bei 0.
Int ID = #FAHRZEUGE.getValueAt(row, #FAHRZEUGE.ID)
Mit Hilfe der ermittelten Zeilennummer row wird die ID des Datensatzes aus der Virtuellen Tabelle #FAHRZEUGE ausgelesen und in der Variable ID gespeichert.
XDEV Query #FAHRZEUGE << FAHRZEUGE
Es erfolgt eine Abfrage der Datenbank-Tabelle #FAHRZEUGE. Als Bedingung wird die ID des in der Table selektierten Datensatzes angegeben, z.B. #FAHRZEUGE.ID = ID.
Formular.fillFromVT(#FAHRZEUGE, row)
Das Formular wird mit den Daten aus der in row gespeicherten Zeile der Virtuellen Tabelle #FAHRZEUGE gefüllt.
|
|
1
2
3
4
5
|
Bei Änderung Auswahl ( )
Ganzzahl selektierteZeile = Lokal\holeSelektierteZeile( )
Ganzzahl ID = #FAHRZUEGE\holeWert(selektierteZeile, #FAHRZEUGE\ID)
XDEV Datenbankabfrage #FAHRZEUGE << FAHRZEUGE
Formular\fülleAusVT ( #FAHRZEUGE, selektierteZeile )
|
Bei Änderung Auswahl ( )
Der nachfolgende Code wird ausgeführt, wenn sich bei der Komponente die Selektierung ändert. Die Selektierung ändert sich nicht nur, wenn eine Zeile angeklickt wird, sondern auch wenn die Selektierung der Zeile automatisch aufgehoben wird, u.a. wenn die Table den Focus verliert weil eine andere Komponente angeklickt wurde.
Ganzzahl selektierteZeile = Lokal\holeSelektierteZeile( )
Der Index der Selektierten Zeile in der Table wird ermittelt und in der Variable selektierteZeile gespeichert. Der Index beginnt immer bei 0.
Ganzzahl id = #FAHRZUEGE\holeWert(selektierteZeile, #FAHRZEUGE\ID)
Mit Hilfe der ermittelten Zeilennummer selektierteZeile wird die ID des Datensatzes aus der Virtuellen Tabelle #FAHRZEUGE ausgelesen und in der Variable ID gespeichert.
XDEV Datenbankabfrage #FAHRZEUGE << FAHRZEUGE
Es erfolgt eine Abfrage der Datenbank-Tabelle #FAHRZEUGE. Als Bedingung wird die ID des in der Table selektierten Datensatzes angegeben: #FAHRZEUGE.ID = ID.
Formular\fülleAusVT ( #FAHRZEUGE, selektierteZeile )
Das Formular wird mit den Daten aus der in selektierteZeile gespeicherten Zeile der Virtuellen Tabelle #FAHRZEUGE gefüllt.
|
|
|