Zum Hauptinhalt springen

EvtLstEditFinished

EvtLstEditFinished

Ändern eines Spalteneintrages abgeschlossen

Details

Ereignis wird nach jedem Verlassen eines Edit-Objektes innerhalb einer Liste aufgerufen. Das Edit-Objekt ist bereits aus dem Speicher entfernt. In diesem Ereignis kann entschieden werden, ob der geänderte Datensatz gespeichert werden soll oder zum Beispiel eine andere Spalte editiert werden soll.

Definition des Funktionskopfes:

sub EvtLstEditFinished
(
aEvt : event; // Ereignis
aColumn : handle; // Spalte
aKey : int; // Taste
aRecID : bigint; // ID
aClmChanged : logic; // true, bei Änderung des Spalteninhaltes
aEditChanged : logic; // true, bei Änderung des Inhaltes im Eingabeobjekt (optional)
)
: logic; // Wird nicht ausgewertet
{
return(true);
}

Alternativer Funktionskopf:

sub EvtLstEditFinished
(
aEvt : event; // Ereignis
aColumn : handle; // Spalte
aKey : int; // Taste
aRecID : int; // ID
aClmChanged : logic; // true, bei Änderung des Spalteninhaltes
aEditChanged : logic; // true, bei Änderung des Inhaltes im Eingabeobjekt (optional)
)
: logic; // Wird nicht ausgewertet
{
return(true);
}

aEvt

In diesem Parameter vom Typ event wird unter anderem der Deskriptor des auslösenden Objekts übergeben. Dies ist der Deskriptor des Objektes, in dem die Ereignisfunktion eingetragen wurde.

aColumn

In diesem Parameter wird der Deskriptor der Spalte übergeben, in der die Liste editiert wurde.

aKey

Hier steht der Code der Taste, mit der das Edit-Objekt verlassen wurde. Der Wert kann mit den symbolischen Konstanten für Tasten (_WinKey...) verglichen werden.

Bei einer Auswahl aus einem DataListPopup -Objekt wird in diesem Parameter _WinKeySelect übergeben.

Wurde das Feld durch einen Klick mit der Maus verlassen, wird hier 0 übergeben.

aRecID

Hier wird die Datensatz-ID des editierten Datensatzes übergeben. Wird eine DataList editiert, wird die aktuelle Zeilennummer übergeben.

info

Wird der alternative Funktionskopf verwendet, kommt es zum Laufzeitfehler _ErrValueOverflow , wenn die zu übergebende Datensatz-ID nicht in den Wertebereich von int passt.

aClmChanged

Mit diesem Übergabeparameter kann entschieden werden, ob Felder verändert wurden. Das Changed-Flag wird durch den Befehl WinLstEdit () mit der Option _WinLstEditClearChanged zurückgesetzt und gesetzt, sobald das Ereignis EvtLstEditCommit den Wert true zurück gibt.

aEditChanged

In diesem Übergabeparameter wird übergeben, ob sich der Inhalt des Eingabeobjektes nach Erstellung bzw. nach Durchführung des Ereignisses EvtLstEditStart verändert hat.

Resultat

Der Rückgabewert der Funktion wird nicht ausgewertet.

Beispiel:

sub EvtLstEditFinished
(
aEvt : event; // Ereignis
aColumn : handle; // Spalte
aKey : int; // Taste
aRecID : bigint; // ID
aClmChanged : logic; // true, bei Änderung des Spalteninhaltes
aEditChanged : logic; // true, bei Änderung des Inhaltes im Eingabeobjekt (optional)
) : logic; // Wird nicht ausgewertet

{
switch (aKey)
{
...
case _WinKeyEsc :
{
// Datensatz nicht speichern und entsperren
tErg # RecRead(aEvt:Obj->wpDbFileNo, 0, _RecID | _RecUnlock, aID);
}
}

// Liste aktualisieren
aEvt:Obj->WinUpdate(_WinUpdOn, _WinLstFromSelected | _WinLstPosSelected | _WinLstRecDoSelect);

return(true);
}