Zweck
Callback-Methode für das Editieren eines Spaltenwertes.
Klasse
Typ
Methode
Syntax
<oBrowser>:CellEdit(<iMode>) Æ lSuccess
Argumente
<iMode> | Eingabemodus, in dem sich die Datenzelle befindet. Es können folgende Modi auftreten: |
Eingabemodus |
Beschreibung |
Returnwert |
BEDIT_CREATE |
Das Control für die Eingabe wird erzeugt. |
Der Returnwert FALSE unterbindet die Eingabe. |
BEDIT_INIT |
Das Control für die Eingabe wird initialisiert. |
Der Returnwert FALSE unterbindet die Eingabe |
BEDIT_SHOW |
Das Control für die Eingabe wird angezeigt. |
Der Returnwert wird nicht ausgewertet. |
BEDIT_END |
Die Eingabe in dem Control wird überprüft und sofern sie gültig ist übernommen. |
Der Returnwert FALSE beendet nicht die Eingabe, sondern setzt sie fort. |
BEDIT_CANCEL |
Die Eingabe in dem Control wird abgebrochen. |
Der Returnwert FALSE bricht die Eingabe nicht ab, sondern setzt sie fort. |
BEDIT_COMMIT |
Die Eingabe wurde gespeichert. Ein Commit wurde nicht automatisch vom bBrowser durchgeführt. Der Modus kann verwendet werden, um selbst ein Commit auszuführen. |
Der Returnwert wird nicht ausgewertet. |
BEDIT_HIDE |
Das Control für die Eingabe wird ausgeblendet. |
Der Returnwert wird nicht ausgewertet. |
Datentyp: | Int |
Rückgabewert
lSuccess | Logischer Wert der definiert, ob der Eingabemodus korrekt abgearbeitet wurde. |
Datentyp: | Logic |
Beschreibung
bBrowser:CellEdit() ist eine Callback-Methode, die immer dann vom bBrowser aufgerufen wird, wenn der Wert einer Datenzelle eingegeben werden soll. Die Methode überprüft, ob im Owner des bBrowsers eine Methode mit dem gleichen Namen definiert ist und ruft diese gegebenenfalls mit einem bCellEditEvent-Objekt als einziges Argument auf.
Der gesamte Eingabevorgang für einen Spaltenwert ist in 5 Schritte unterteilt. Für jeden einzelnen Schritt ruft der Browser die Methode CellEdit() mit dem entsprechenden Eingabemodus auf. Der Owner des Browsers kann durch die Definition einer eigenen CellEdit()-Methode auf diese Eingabemodi reagieren.
Beispiele
Das folgende Beispiel zeigt die Definition einer eigenen CellEdit()-Methode im Owner des Browsers. Diese wird automatisch vom Browser aufgerufen.
METHOD CellEdit(oCellEditEvent) CLASS DataWindow
// Eingabemodus auswerten
LOCAL oFS AS FieldSpec
LOCAL cText AS STRING
IF oCellEditEvent:EditMode=BEDIT_CREATE
IF oCellEditEvent:EditCell:Column=1 .and. oCellEditEvent:EditCell:Row=2
// Zeile 2 in der ersten Spalte darf nicht verändert werden
// -> Durch die Rückgabe von FALSE wird die Eingabe nicht erlaubt.
RETURN FALSE
ENDIF
ELSEIF oCellEditEvent:EditMode=BEDIT_INIT
// Für die 3. Spalte wird eine Mindesteingabelänge gesetzt.
IF oCellEditEvent:EditCell:Column=3
oFS := oCellEditEvent:EditControl:FieldSpec
oFS:SetMinLength(4, HyperLabel{"Spalte 3", ,"Der Wert muss aus mindestens 4 Zeichen bestehen."})
ENDIF
ELSEIF oCellEditEvent:EditMode=BEDIT_END
// Leereingaben verbieten
// -> Durch die Rückgabe von FALSE wird die Eingabe
// nicht beendet sondern fortgesetzt
cText := oCellEditEvent:EditControl:TextValue
oCellEditEvent:EditControl:TextValue := RTrim(UPPER(cText))
IF EMPTY(oCellEditEvent:EditControl:TextValue)
RETURN FALSE
ENDIF
ELSEIF oCellEditEvent:EditMode=BEDIT_COMMIT
// Commit ausführen
// -> Dies wird von manchen Datenservern erwartet
// (BufferedServer !?)
oCellEditEvent:Control:Server:Commit()
ENDIF
RETURN TRUE
Siehe auch
Page url: http://www.YOURSERVER.com/index.html?bbrowser_celledit.htm